Out of Memory

Delphi

26/09/2005

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].


Tomazett

Tomazett

Curtidas 0

Respostas

Massuda

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.


GOSTEI 0
Tomazett

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

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

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

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
...é suficiente; se você digitar apenas dcc32, será mostrada uma lista de opções suportadas na linha de comando (geralmente precisa do -I); também dê uma olhada na Ajuda do Delphi sobre arquivos CFG (dcc32.cfg).

Outra coisa... a mensagem de erro é no link ou no rlink (são coisas diferentes)?


GOSTEI 0
POSTAR