emotta Posted August 2, 2013 Report Share Posted August 2, 2013 Pessoal, durante anos tivemos um bug em nosso sistema que contornavamos e nao corrigiamos. O problema era com relacao a manipulação de grandes STRINGS (acima de 50mb) ou então lendo um arquivo texto com MEMOREAD sendo que o arquivo era maior que 50mb. Hoje descobrimos a solução para isso e estou compartilhando aqui caso alguem esteja passando por isso. Com essa solução, a limitação que era de 50mb sobre para o limite da memória disponivel. (em testes aqui fizemos com mais de 5gb e não tivemos problema). Segue a solução que o meu pessoal aqui descobriu com informações também do forum da fivetech (http://forums.fivetechsupport.com/viewtopic.php?f=3&t=17889&p=93741&hilit=optg+hb_xrealloc#p93741). O hb_xrealloc ocorre quando teoricamenteo estoura a quantidade de memória disponivel para ser usada. Ocorreque no xHarbour Comercial, quando compilado em modo GUI ele adiciona alib (xHarbour\lib\optg.lib), nesta lib existem as funções de tratamentohb_xrealloc, hb_xgrab...etc...e provavelmente elas possuem um limite.Nos testes este limite era de 50mb. Retirando a lib da compilação, o xharbour passa a manipular a quantidade dememória normalmente (como ocorre no modo console), pois as funçõeshb_xrealloc, hb_xgrab..etc já estão na lib (\xharbour\lib\xhb.lib) eestas não possuem limite (vai da quantidade de RAM disponivel). Quote Link to comment Share on other sites More sharing options...
Yury Posted August 2, 2013 Report Share Posted August 2, 2013 Olá Eduardo, boa tarde primeiramente obrigado por compartilhar a informação utilizo xHabour NÃO COMERCIAL, mas também tenho problemas eventuais com o xrealloc , que resolvo com o hbgcall sobre a solução que vc apresentou, verifiquei a lib que vc citou (optg) não está sendo compilada no meu projeto (utilizo xDev para compilar) vc apurou mais alguma informação sobre isso ? Abraço e obrigado Quote Link to comment Share on other sites More sharing options...
emotta Posted August 2, 2013 Author Report Share Posted August 2, 2013 essa solucao que postei é exatamente quando o HB_GCALL() ou HB_GCALL(.T.) nao resolve. e faltou mencionar, isso é somente no xHarbour comercial, pois na free a lib nao é compilada mesmo. sobre seu problema nao sei dizer, infelizmente. Vc consegue isolar mais ou menos o ponto que da o problema e saber se e alguma manipulacao de string ou acumulo de array? se for é porque ele está ficando grande demais... abraços Olá Eduardo, boa tarde primeiramente obrigado por compartilhar a informação utilizo xHabour NÃO COMERCIAL, mas também tenho problemas eventuais com o xrealloc , que resolvo com o hbgcall sobre a solução que vc apresentou, verifiquei a lib que vc citou (optg) não está sendo compilada no meu projeto (utilizo xDev para compilar) vc apurou mais alguma informação sobre isso ? Abraço e obrigado Quote Link to comment Share on other sites More sharing options...
Yury Posted August 5, 2013 Report Share Posted August 5, 2013 É exatamente em pontos em que carrega bastante informação em arrays, utilizando sqlarray da SQLLIB, por exemplo bom, por enquanto eu vou contornando com o hbgcall de qualquer forma obrigado pela atenção Abraço Quote Link to comment Share on other sites More sharing options...
renatobenedetti Posted September 24, 2013 Report Share Posted September 24, 2013 Cara no meu XBP nao tem a inclusao desta lib. Fiz um teste renomeando esta lib e tentei compilar, da erro na compilacao que nao acha essa lib. como vc fez pra isso ocorrer ? meu xHarbour é comercial e estou na versao 1.0.0 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted September 24, 2013 Report Share Posted September 24, 2013 http://forums.fivetechsupport.com/search.php?st=0&sk=t&sd=d&keywords=xrealloc Quote Link to comment Share on other sites More sharing options...
emotta Posted September 24, 2013 Author Report Share Posted September 24, 2013 apague a OPTG.LIB Crie uma FUNCTION qualquer e mande compilar uma LIB . Então coloque o nome desta lib como OPTG.LIB e copie para dentro da pasta XHB\LIB Cara no meu XBP nao tem a inclusao desta lib. Fiz um teste renomeando esta lib e tentei compilar, da erro na compilacao que nao acha essa lib. como vc fez pra isso ocorrer ? meu xHarbour é comercial e estou na versao 1.0.0 Quote Link to comment Share on other sites More sharing options...
EduViggiano Posted September 26, 2014 Report Share Posted September 26, 2014 Estive conversando agora pouco com o Eduardo Motta, eu sofri com este processo por anos, e com este tópico e os créditos do Rodrigo Pavan(quem descobriu) resolvi meu problema! Obrigado!!! Quote Link to comment Share on other sites More sharing options...
emotta Posted September 26, 2014 Author Report Share Posted September 26, 2014 Boa xará, fico contente que te ajudou o topico. abraços Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.