Série da semana: Primeiros passos no React

Veja mais

Executável muito grande para aplicação simples

23/02/2016

1

Boa tarde a todos.
O Executável da minha aplicação está muito grande (25Mb) para a simplicidade das tarefas. Acredito que esteja integrando ao executável vários arquivos. Aqui fica minha dúvida.

Para teste de comunicação criei um aplicação com somente:
- 1 ZConnection
- 1 ZQuery
- 1 DataSource
- 1 DBGrid
- 1 Botão
e fiz as configurações de conexão ao MySQL que está na net (site de hospedagem). O teste deu sucesso pois houve a comunicação e o trânsito normal dos dados mas ainda nessa fase de testes com poucos componentes o arquivo .exe ficou com mais de 25Mb.

O executável está em C:\MeusProgs\Win32\Debug\Executavel.exe juntamente com 118 arquivos .DCU dos componentes do ZEOS mesmo de componentes que nem incluí no form. Alguns dos arquivos: ZAbstractRODataset.dcu, ZDbcAdoResultSet.dcu, ZDbcCachedResultSet.dcu, etc

Ao instalar o Zeos tive que ir adicionando pastas ao library do Delphi (dos packages do zeos) até conseguir sucesso então acho que aqui que a coisa melecou tudo pois não sei se isto é que está incluindo nos executáveis os arquivos .dcu não utilizados por mim.

Segue imagem do Delphi Options > Library:

[img:descricao=Diretórios no Library Path do Delphi]http://arquivo.devmedia.com.br/forum/imagem/475902-20160223-184857.png[/img]

Peço dica dos usuários para solução


Uso Delphi XE3, MySQL 5.1 e Zeos 7.1.4 no windows 7

Abraços
Responder

Post mais votado

23/02/2016

Usa um programa chamado upx ele compacta o executável vai cair para uns 10mb
Responder

Mais Posts

23/02/2016

Raylan Zibel

Quando voce compila como Release qual o tamanho do executavel?
Responder

24/02/2016

Jefferson Toe

Boa noite. Obrigado pelo retorno

Raylan: eu não sei o que é o Release

Riechelmann: acho que a saída deve ser outra. Ja fiz alguns outros softwares de até considerável poder e não passaram de 7Mb. Esse em questão está só com a função da conexão e ja passou dos 25Mb

O fato de ter trazido todos aqueles arquivos .dcu me encucam e me fazem pensar que todos eles devem ter sido compilados junto no aplicativo.
Está me faltando conhecimento no gerenciamento/operação no Delphi

Vou continuar procurando

Obrigado pelos retornos
Responder

24/02/2016

Raylan Zibel


Raylan: eu não sei o que é o Release


[img:descricao=release]http://arquivo.devmedia.com.br/forum/imagem/244662-20160224-230055.png[/img]

Quando está como debug tende a ficar maior.
Responder

25/02/2016

Jefferson Toe

Raylan,

realmente ficou menor. Obrigado pela dica.
Logo após seu primeiro post fui atrás do conhecimento do Release e fiz o teste. Só com essa mudança saiu de 25Mb para 8Mb.

Esse processo de mudar para Release exclui alguma informação do executável? Me refiro a não incluir alguma DLL necessária para rodar o programa. Por se tratar de banco dados MySQL existem algumas DLL que são necessárias e os computadores clientes da aplicação nunca têm. Trocando em miúdos, tenho como verdadeiro que o executável ja é "fabricado" com todos os DLLs que necessita para rodar, assim na máquina cliente não vai fazer diferença se tem ou não as DLLs. Passando para esse Release e gerando um executável menor chego a pensar que esse DLLs não estão incluído (por ter encolhido em Mb). Estou certo nessa idéia?

Desde ja agradeço
Responder

25/02/2016

Raylan Zibel

Raylan,

realmente ficou menor. Obrigado pela dica.
Logo após seu primeiro post fui atrás do conhecimento do Release e fiz o teste. Só com essa mudança saiu de 25Mb para 8Mb.

Esse processo de mudar para Release exclui alguma informação do executável? Me refiro a não incluir alguma DLL necessária para rodar o programa. Por se tratar de banco dados MySQL existem algumas DLL que são necessárias e os computadores clientes da aplicação nunca têm. Trocando em miúdos, tenho como verdadeiro que o executável ja é "fabricado" com todos os DLLs que necessita para rodar, assim na máquina cliente não vai fazer diferença se tem ou não as DLLs. Passando para esse Release e gerando um executável menor chego a pensar que esse DLLs não estão incluído (por ter encolhido em Mb). Estou certo nessa idéia?

Desde ja agradeço


Continuará precisando copiar as dlls igualmente. O que muda é que em modo Debug o Delphi adiciona ao exe recursos para debugar, por isso fica maior.
Copie as dlls que estiverem na pasta debug pra pasta release se der erro em alguma que vc usa.
Responder

25/02/2016

Jefferson Toe

Raylan, compreendi agora.

Caso resolvido então.

Agradeço o emprenho em ajudar.

Abraços
Responder