Out of Memory
Bom dia gente. Estamos passando por um problemão aqui na empresa.
Temos um software que o seu executável principal tem cerca de 25mb e pouco mais de 481200 linhas. Nós já dividimos ele em outros módulos, separados em outros .exe e mesmo assim ele continua crescendo cada vez mais. Está parecendo filme de terror, daqui a pouco ele nos engole.
Bom, mas vamos lá aos problemas:
1- Já tem 1 mês que o programa não roda em Win 98, então temos que passar um programa tipo o Aspack pra compactar.
2- O programa simplesmente não compila. Todos os outros projetos do sistema compilam, menos o principal que tem 25mb. Quando vai fazer o linking o Delphi dá erro de Out of Memory,
Soluções:
1- Dividir mais ainda o projeto - Nós pensamos nessa solução, mas não temos muito tempo disponível pra isso.
2- Configuração do Delphi - Será que existe alguma configuração que nos ajude?
3- Mais memória - Estou com 512... acho que não preciso de mais que isso não.
4- Sugestão do forum - Por favor, alguém tem alguma idéia?
Obrigado pela atenção e desculpe pelo desespero ;)
[b:4c4eb7b3f4][color=blue:4c4eb7b3f4]Tílulo do tópico editado pelo moderador Vinicius2K:[/color:4c4eb7b3f4][/b:4c4eb7b3f4]
[b:4c4eb7b3f4][color=red:4c4eb7b3f4][list:4c4eb7b3f4][*:4c4eb7b3f4]Removido ´Questão de vida ou morte!´[/list:u:4c4eb7b3f4][/color:4c4eb7b3f4][/b:4c4eb7b3f4]
Peço que leia atentamente as [url=http://forum.clubedelphi.net/viewtopic.php?t=6689]Regras de Conduta[/url] para evitar que este fato se repita.
Se algum esclarecimento sobre o funcionamento do fórum ou sobre as Regras de Conduta for necessário, envie-me uma [url=http://forum.clubedelphi.net/privmsg.php?mode=post&u=2796]Mensagem Particular[/url].
Temos um software que o seu executável principal tem cerca de 25mb e pouco mais de 481200 linhas. Nós já dividimos ele em outros módulos, separados em outros .exe e mesmo assim ele continua crescendo cada vez mais. Está parecendo filme de terror, daqui a pouco ele nos engole.
Bom, mas vamos lá aos problemas:
1- Já tem 1 mês que o programa não roda em Win 98, então temos que passar um programa tipo o Aspack pra compactar.
2- O programa simplesmente não compila. Todos os outros projetos do sistema compilam, menos o principal que tem 25mb. Quando vai fazer o linking o Delphi dá erro de Out of Memory,
Soluções:
1- Dividir mais ainda o projeto - Nós pensamos nessa solução, mas não temos muito tempo disponível pra isso.
2- Configuração do Delphi - Será que existe alguma configuração que nos ajude?
3- Mais memória - Estou com 512... acho que não preciso de mais que isso não.
4- Sugestão do forum - Por favor, alguém tem alguma idéia?
Obrigado pela atenção e desculpe pelo desespero ;)
[b:4c4eb7b3f4][color=blue:4c4eb7b3f4]Tílulo do tópico editado pelo moderador Vinicius2K:[/color:4c4eb7b3f4][/b:4c4eb7b3f4]
[b:4c4eb7b3f4][color=red:4c4eb7b3f4][list:4c4eb7b3f4][*:4c4eb7b3f4]Removido ´Questão de vida ou morte!´[/list:u:4c4eb7b3f4][/color:4c4eb7b3f4][/b:4c4eb7b3f4]
Peço que leia atentamente as [url=http://forum.clubedelphi.net/viewtopic.php?t=6689]Regras de Conduta[/url] para evitar que este fato se repita.
Se algum esclarecimento sobre o funcionamento do fórum ou sobre as Regras de Conduta for necessário, envie-me uma [url=http://forum.clubedelphi.net/privmsg.php?mode=post&u=2796]Mensagem Particular[/url].
Tomazett
Curtidas 0
Respostas
Massuda
26/09/2005
Existem duas coisas que podem estar ocorrendo.
(1) Muitos forms em um único executável: existe um limite do Win 9x/ME na quantidade de forms que você pode ter em um único executável; veja [url=http://forum.clubedelphi.net/viewtopic.php?t=57909]este tópico[/url] do fórum.
(2) Muitos objetos criados/destruídos: se o seu programa cria e destrói muitos objetos seguidamente, pode ocorrer no Win 9x/ME informar erro de memória insuficiente embora exista memória disponível. Isso ocorre devido ao fato do gerenciador de memória do Win 9x/ME não ser capaz de desfragmentar a memória livre, coisa que o gerenciador de memória do Win NT/2K/XP faz sem problemas.
Com relação ao ASPack, ele não resolverá problemas relacionados com memória utilizada pelo programa, na verdade ele agrava o problema, pois o executável precisa ser descompactado em memória, o que causa maior consumo de memória. O único benefício dos compactadores de EXE é que seu executável ocupa menos espaço em disco, demora menos tempo para baixar, etc.
(1) Muitos forms em um único executável: existe um limite do Win 9x/ME na quantidade de forms que você pode ter em um único executável; veja [url=http://forum.clubedelphi.net/viewtopic.php?t=57909]este tópico[/url] do fórum.
(2) Muitos objetos criados/destruídos: se o seu programa cria e destrói muitos objetos seguidamente, pode ocorrer no Win 9x/ME informar erro de memória insuficiente embora exista memória disponível. Isso ocorre devido ao fato do gerenciador de memória do Win 9x/ME não ser capaz de desfragmentar a memória livre, coisa que o gerenciador de memória do Win NT/2K/XP faz sem problemas.
Com relação ao ASPack, ele não resolverá problemas relacionados com memória utilizada pelo programa, na verdade ele agrava o problema, pois o executável precisa ser descompactado em memória, o que causa maior consumo de memória. O único benefício dos compactadores de EXE é que seu executável ocupa menos espaço em disco, demora menos tempo para baixar, etc.
GOSTEI 0
Tomazett
26/09/2005
Veja que o meu problema maior não é rodar o programa no Windows 98, e sim compilar ele. Eu uso o XP e não consigo compilar de jeito nenhum.
GOSTEI 0
Massuda
26/09/2005
Veja que o meu problema maior não é rodar o programa no Windows 98, e sim compilar ele.
Desculpe, não tinha prestado atenção no detalhe.Qual mensagem de erro que está dando?
Você consegue compilar o projeto via linha de comando (dcc32)?
GOSTEI 0
Tomazett
26/09/2005
Você consegue compilar o projeto via linha de comando (dcc32)?
Eu pensei em compilar com o dcc32 mas não sei como fazer? Quais os parametros?
GOSTEI 0
Massuda
26/09/2005
Eu pensei em compilar com o dcc32 mas não sei como fazer? Quais os parametros?
A partir do diretório onde está seu arquivo DPR, geralmente fazendo...dcc32 -B SeuArquivo.dpr
Outra coisa... a mensagem de erro é no link ou no rlink (são coisas diferentes)?
GOSTEI 0