Consumindo 32Mb de ram.... oq fazer???
Olá pessoal, fiz m$$¬, na outra msg, por isso fui bloqueado....mas será q alguem pode me ajudar?estou no fim de um programa e ele está consumindo 32mb de ram, aki na minha makina com 512mb roda blz, o problema nos usuarios....ja coloquei metades dos forms apra serem criados e zerados a mao....mas nu madiantou nada, será q é culpa deste dm cheio de querys??oq fazer?
Borland_ale
Curtidas 0
Respostas
Beppe
27/01/2004
Você pode reduzir o consumo mantendo apenas os forms necessários na memória, criando quando precisar exibir. Remover recursos(imagens, etc) do programa e deixar em arquivos separados(e carregar em runtime) também é uma boa opção.
GOSTEI 0
Borland_ale
27/01/2004
Você pode reduzir o consumo mantendo apenas os forms necessários na memória, criando quando precisar exibir. Remover recursos(imagens, etc) do programa e deixar em arquivos separados(e carregar em runtime) também é uma boa opção.
valeu, os forms ja fiz um teste, e mesmo chamando a mão num adianta nada, o executavel fica com 2mb, até q não é malz... o problema é q qdo abro o gerenciador de tarefas do wndows ele me diz q meu programa da consumindo 32 mb, e tem makina de usuario q eu testei e num carrega nem a pau...
GOSTEI 0
Ldsirene
27/01/2004
Meu uma possivel solução:
Vá no menu Project-->Options
e na guia Forms, coloca todos os forms que seu sistema tem na parte ´Available forms´, deixando somente o form da tela principal na parte ´Auto-create forms´. Isso significa que só o principal será chamado e carregado na memória ao iniciar o sistema.
Em cada parte que vc chama uma tela do sistema tente algo assim:
if frmLogon_chefe = nil then
begin
frmLogon_chefe := TfrmLogon_chefe.Create(Application);
frmLogon_chefe.ShowModal;
end;
Neste exemplo o usuario clica num botão que chama o form frmLogon_chefe. Só abrira se o form estiver fora da memória, não carregado.
Lembrando que no evento OnClose de cada form (menos o principal), deve colocar assim:
Action := caFree;
frmLogon_chefe := nil;
Para tirar o form da memória ao fecha-lo!!!
Faço isso e meus sistemas que chegam a abrir até 3 telas de uma vez rodam em qualquer máquina, até 586!
Tenta lá e boa sorte.
Vá no menu Project-->Options
e na guia Forms, coloca todos os forms que seu sistema tem na parte ´Available forms´, deixando somente o form da tela principal na parte ´Auto-create forms´. Isso significa que só o principal será chamado e carregado na memória ao iniciar o sistema.
Em cada parte que vc chama uma tela do sistema tente algo assim:
if frmLogon_chefe = nil then
begin
frmLogon_chefe := TfrmLogon_chefe.Create(Application);
frmLogon_chefe.ShowModal;
end;
Neste exemplo o usuario clica num botão que chama o form frmLogon_chefe. Só abrira se o form estiver fora da memória, não carregado.
Lembrando que no evento OnClose de cada form (menos o principal), deve colocar assim:
Action := caFree;
frmLogon_chefe := nil;
Para tirar o form da memória ao fecha-lo!!!
Faço isso e meus sistemas que chegam a abrir até 3 telas de uma vez rodam em qualquer máquina, até 586!
Tenta lá e boa sorte.
GOSTEI 0
Borland_ale
27/01/2004
Meu uma possivel solução:
Vá no menu Project-->Options
e na guia Forms, coloca todos os forms que seu sistema tem na parte ´Available forms´, deixando somente o form da tela principal na parte ´Auto-create forms´. Isso significa que só o principal será chamado e carregado na memória ao iniciar o sistema.
Em cada parte que vc chama uma tela do sistema tente algo assim:
if frmLogon_chefe = nil then
begin
frmLogon_chefe := TfrmLogon_chefe.Create(Application);
frmLogon_chefe.ShowModal;
end;
Neste exemplo o usuario clica num botão que chama o form frmLogon_chefe. Só abrira se o form estiver fora da memória, não carregado.
Lembrando que no evento OnClose de cada form (menos o principal), deve colocar assim:
Action := caFree;
frmLogon_chefe := nil;
Para tirar o form da memória ao fecha-lo!!!
Faço isso e meus sistemas que chegam a abrir até 3 telas de uma vez rodam em qualquer máquina, até 586!
Tenta lá e boa sorte.
valeu :) o negocio dos forms ja fiz com os forms q eram possiveis, tipo tem uns q fica mais complicado, pois preciso respeitar valores de combobox, pois é um wizard.... mas ainda acho q tem algo a ver com as querys do dm, deve ter mais de vinte querys.....
GOSTEI 0