GARANTIR DESCONTO

Fórum Out of Memory #345030

24/08/2007

0

Ola Pessoal,

Tenho um sistema porém o mesmo já esta com um tamanho consideravel...Com isso algumas vezes quando vou compilar o projeto da a mensagem ´[b:121271d0ca]Out of Memory[/b:121271d0ca]´...

Gostaria de saber por onde posso começar a verificar para resolver este problema? Ou se tem algum material interessante que possa me ajudar...

Algumas dicas seriam interessantes, bem como se existir alguma propriedade do Delphi ou opção para ajudar a evitar/tratar tal mensagem...

Se alguém puder ajudar ficaria grato...

vlw


Fernando Piccini

Fernando Piccini

Responder

Posts

24/08/2007

Marcosrocha

Fernando eu nunca ví isso não! Tenho aplicações com mais de 200.000 linhas de código com tamanho de 10 MB e jamais aconteceu tal evento comigo. Detalhe, usando 256 MB de Ram... Tente verificar se ao compilar, não há muitos processos rodando em sua máquina... Talvez pode ser isso... Se alguém mais tiver idéias favor ajudar.... :)


Responder

Gostei + 0

28/08/2007

Rodc

Cara, eu tenho este problema no meu sistema em C++Builder. Só que ele só acontece de vêz em quando e quando estou em modo de debug. Por isto não me preoculpei de ir a fundo para resolver o problema.
Meu sistema também esta grande e usa um componente de Skin que usa muita memória para se atualizar. Por isto, sempre que meu sistema está trocando de tela e processando alguma rotina que também pegue muita memória, o erro aparece.
Tente deixar a menor quantidade possível de classes em memória. Ou seja, crie os formulários apenas se for usar e destrua após a utilização.
Caso tenha mais alguma informação sobre o assunto avise aqui no forum que isto também me interessa.
Abraços,


Responder

Gostei + 0

28/08/2007

Marcosrocha

crie os formulários apenas se for usar e destrua após a utilização.

Exemplo de criação / destruição correta de formulários e liberar memória
procedure TFrmMain.Cadastro1Click(Sender: TObject);
begin
  Application.CreateForm(TFrmCadastro, FrmCadastro);
  FrmCadastro.ShowModal; // no meu caso uso sempre modal
  FreeAndNil(FrmCadastro); // efetua o Free no Form e também limpa o setor de memoria que foi alocado por ele
end;



Responder

Gostei + 0

28/08/2007

Nerdex

Se realmente não existe erro lógico na tua aplicação leia abaixo:

Olá Fernanda, já adiantando ... sim! ... tem como configurar pelo Delphi o ´´aumento de memória´, para isto basta ir em Project > Optinos e na aba Linker veja nos campos: Min Stak Size e Max Stack Size. Aumente(em haxadecimal) o valor no campo Max Stack Size.

Outro ítem importante sobre o assunto é, se vc utiliza Delphi 7 ou inferiores, te peço que intere-se sobre o gerenciador de memória FastMM (aqui no fórum tem uns posts meus sobre isso). E claro! ... verifique a quantidade de memória física na tua máquina e confira o consumo desta aplicação com o auxílio do Gerenciador de Tarefas do Win.

[]´s


Responder

Gostei + 0

28/08/2007

Marcosrocha

tem como configurar pelo Delphi o ´´aumento de memória´

Por padrão, o Delphi traz:
[b:3611e654a4]Min stack size:[/b:3611e654a4] [color=red:3611e654a4][b:3611e654a4]$00004000[/b:3611e654a4][/color:3611e654a4]
[b:3611e654a4]Max stack size:[/b:3611e654a4] [color=red:3611e654a4][b:3611e654a4]$00100000[/b:3611e654a4][/color:3611e654a4]
[b:3611e654a4]Image base:[/b:3611e654a4] [color=red:3611e654a4][b:3611e654a4]$00400000[/b:3611e654a4][/color:3611e654a4]


Responder

Gostei + 0

29/08/2007

Rodc

Já havia tentado aumentar o StackSize, mas na via das dúvidas fui testar novamente. Aumentei o MaxStackSize e o MaxHeapSize para o valor máximo permitido e não resolveu o problema.


Responder

Gostei + 0

29/08/2007

Marcosrocha

E claro! ... verifique a quantidade de memória física na tua máquina e confira o consumo desta aplicação com o auxílio do Gerenciador de Tarefas do Win.

Quanto de memória disponível (FÍSICA) você tem e quanto de memória virtual?
Eu tenho 512 Mb Física num total de 1122 Mb (Física + Virtual) e sempre ocupo em média 250 Mb quando estou programando / debugando.


Responder

Gostei + 0

29/08/2007

Rodc

Você quer dizer Memória física+paginação?
Tenho 512 física + 760 de paginação. Mas a paginação está configurada para ir até 2GB.

Debugando o aplicativo eu estou usando 418MB de paginação e tem 240Mb de memória física disponível.

No momento do erro estava usando 419MB de paginação e tinha 236MB livres de memória física.

O aplicativo que eu estava debugando estava usando 21MB de memória física e 78MB de paginação


Responder

Gostei + 0

30/08/2007

Fernando Piccini

Ola Pessoal,

Agradeço pela colaboração ai...

Vou testar a opção de MaxStackSize para ver se vai resolver...

se alguém tiver novas sugestões seria de grande importancia uma vez que muita gente deve ja ter o mesmo problema em suas aplicações e projetos...

vlw


Responder

Gostei + 0

27/03/2008

Fernando Piccini

Estava a mais de um ano atras de uma solução para isso,
também já tinha alterado Min stack size Max stack no Delphi: Linker / Memory Sizes, porém não mudou nada...

Padrão do Delphi 6

Min stack size: $00004000 
Max stack size: $00100000 
Image base: $00400000


Torna-se necessário disponibilizar arquivos de configuração...
Segue e-mail abaixo para disponibiliza-los:

piccini.fernando@gmail.com


Responder

Gostei + 0

27/03/2008

Rodc

[quote:6f91742795=´Fernando Piccini´]Torna-se necessário disponibilizar arquivos de configuração...[/quote:6f91742795]
O que seria estes arquivos de configuração? O que eles configuram?


Responder

Gostei + 0

30/06/2008

Fernando Piccini

Ola rodc,

São arquivos necessários para não ocorrer mais o problema do out of memory. Para Delphi 6 nunca mais aconteceu o erro (O que foi testado).

Obs: Não verifiquei se em versões posteriores do Delphi ainda acontece o ´Out of Memory´

:)


Responder

Gostei + 0

10/09/2009

Fernando Piccini

Ola Sr,

Para resolver o problema de Out of Memory no Delphi precisa trocar o arquivo ´RLINK32.dll´ que se encontra na pasta C:\Arquivos de programas\Borland\Delphi7\Bin por uma versão mais atualizada desta mesma DLL.

Obs: Esta solução foi testada e funciona para Delphi 6.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar