O que devo fazer para envitar que o EXE, cresça muito..

Delphi

07/05/2004

Estou com um projeto que contem algumas telas.
Mas o executavel esta quase atigindo 10mb.

Gostaria de receber dicas de como evitar que o executal cresça muito, algo tipo:

*tipos de compilação
*declarações de form2, variaveis;
*tipos de componetes


Dimmy

Dimmy

Curtidas 0

Respostas

Lucas Silva

Lucas Silva

07/05/2004

Programação orientada a objetos é uma boa coisa....


GOSTEI 0
Nildo

Nildo

07/05/2004

Passa o UPX nele pra ver o que acontece


GOSTEI 0
Emmont

Emmont

07/05/2004

tenho um otimo progrmaminha para compactar o exe, meus projetos so de 3 mbs e fica com no maxixo 850 kb
se vc quiser me escreve eomonteiro@yahoo.com.br


GOSTEI 0
Nildo

Nildo

07/05/2004

tenho um otimo progrmaminha para compactar o exe, meus projetos so de 3 mbs e fica com no maxixo 850 kb se vc quiser me escreve eomonteiro@yahoo.com.br


Porque não nos diz o nome?


GOSTEI 0
Nigro

Nigro

07/05/2004

Muitas imagens dentro do sistema fazem, o exe fica pesado, mas se você tem muita preocupação com o layout e as imagens incorporadas no seu sistema não realmente necessárias.
Faça o seguinte:
Tente carregá-las em tempo de execução.
Não use uma resolução muito alta
Mas se esse não for o seu caso, dê uma olhada de como se coloca o UPX no menu do Delphi, assim fica mais fácil de compatar o executável, creio que essa dica quem postou aqui foi o Nildo, eu uso e funciona muito bem.


GOSTEI 0
Nildo

Nildo

07/05/2004

creio que essa dica quem postou aqui foi o Nildo, eu uso e funciona muito bem.


Fui eu sim! Daí é só eu apertar ( ALT+T -> X ) e ele já abre o UPX compactando seu projeto. Só não lembro o Link exato para a dica, mas pesquise no fórum por autor NILDO e mensagem contendo UPX


GOSTEI 0
Cebikyn

Cebikyn

07/05/2004

Eu utilizo o UPX. Coloquei ele até no menu Tools. Faz assim: Tools -> Configure Tools -> Add -> Title: ´Compactar´ Program: ´c:\Localizacao Do Seu UPX\UPX.exe´ WorkDir: Parameters: ´[b:96d19eb71d]--best --crp-ms=99999[/b:96d19eb71d] $EXENAME´ Dae ele vai ficar lá no menu TOOLS


O trecho em negrito foi alterado por mim (original: [b:96d19eb71d]-9[/b:96d19eb71d]), para melhorar a compressão.


GOSTEI 0
Danilorsa

Danilorsa

07/05/2004

Se vocês tem Norton Anti-Vírus Instalado façam o seguinte:


c:\upx\upx -9 Executavel.exe

Este comando compacta... Porém tentem abrir o programa com o Auto-Protect ativado... Ele trava quase que totalmente sua máquina...

Não sei com outros parâmetros...

Cuidado com o UPX


GOSTEI 0
Targinosilveira

Targinosilveira

07/05/2004

Nildo, essa versão que você esta usasndo UPX, é DOS ou For Windows ?
Pois estou pensando em utilizar a dica que você nos repassou.
Anteciapadamente agradeço qualquer resposta.


GOSTEI 0
Motta

Motta

07/05/2004

o que fazem exatamente estes compactadores ?
que lógica usam ?


alguns artigos correlatos


http://www.drbob42.com/articles/index_d.htm
http://www.drbob42.com/delphi/perform.htm
http://community.borland.com/article/0,1410,27178,00.html


GOSTEI 0
Nildo

Nildo

07/05/2004

Olá!
o que eu uso é o ´Win32 console version´.


GOSTEI 0
Cebikyn

Cebikyn

07/05/2004

o que fazem exatamente estes compactadores ?


Simplesmente compactam trechos do executável e alteram o header do mesmo, de forma que quando ele é chamado, todo o conteúdo do exe é descompactado para a memória RAM e executado normalmente.

Além disso, se configurados para tal, removem trechos desnecessários, como a seção de realocação do PE (executável).


GOSTEI 0
Nildo

Nildo

07/05/2004

resumindo: Carrega mais rápido, só que exisge mais memória ram para tal ação.


GOSTEI 0
Cebikyn

Cebikyn

07/05/2004

Claro que não carrega mais rápido, tem o tempo de descompactação, se bem que este é bem pequeno, então fica a mesma coisa.


GOSTEI 0
Nildo

Nildo

07/05/2004

Claro que não carrega mais rápido, tem o tempo de descompactação, se bem que este é bem pequeno, então fica a mesma coisa.


Não me lembro exatamente onde eu tinha lido isso, mas carrega mais rápido sim. Tinha até uma expecificação sobre esse assunto. Vou tentar achar e coloco aqui o link


GOSTEI 0
Motta

Motta

07/05/2004

tem entao que fazer um teste de perfomance antes.

se bem que boa parte do .exe pode ser diminuido por boas praticas de programacao, reutilizacao etc.

separar em módulos tb

criar objetos em run-time no delphi dá algum ganho significativo ?


GOSTEI 0
Nildo

Nildo

07/05/2004

criar objetos em run-time no delphi dá algum ganho significativo ?


Dá na mesma... afinal você já vai ter compilado a Unit deste objeto junto ao executável... Só vai diminuir o DFM mas vai aumentar seu código.


GOSTEI 0
Motta

Motta

07/05/2004

mas em geral são poucas linhas para ser criar din.
não estou afirmando mas acho que criar objetos em run-time dá algum ganho.


GOSTEI 0
Nildo

Nildo

07/05/2004

mas em geral são poucas linhas para ser criar din. não estou afirmando mas acho que criar objetos em run-time dá algum ganho.


São poucas linhas, mas lembre-se de que o compilador transforma seu código para Assembler e depois codifica. Nessa transformação seu código aumenta consideravelmente. É que o Delphi simplifica muita coisa...


GOSTEI 0
Motta

Motta

07/05/2004

Muita gente partia para a solução de utilizar ,com o perdão da má palavra dll´s :-)) , mas pessoalmente não gosto da solução.

Sistemas complexos tendem a ter executaveis grandes, mesmo quando bem programados, é o preço a ser pagar pela complexidade.


GOSTEI 0
Nildo

Nildo

07/05/2004

Eu acho que hoje em dia não há necessidade de um executável pequeno. Claro, se puder evitar EXEs grandes é melhor. Mas esse não é um grande problema


GOSTEI 0
Marcosalex

Marcosalex

07/05/2004

Eu acho que hoje em dia não há necessidade de um executável pequeno. Claro, se puder evitar EXEs grandes é melhor. Mas esse não é um grande problema


A melhor solução para sistemas complexos é a componentização, e é isso que os grandes softwares de hoje fazem. Seja por bibliotecas dll, seja por componentes COM+ ou CORBA ou por WebServices.

Se voce passar o seu sistema para três camadas, o executável cliente vai diminuir consideravelmente. E se usar componentes, voce vai precisar atualizar ou somente o componente ou somente o executavel, ganhando em tamanho, consumo de memoria (o componente só é instanciado se for realmente necessário utilizá-lo) e velocidade, além de diminuir extensivamente o tráfego na rede.

A maior dificuldade é que a maioria dos analistas estão acostumados a pensar da maneira clássica, com um só executável realizando todas as tarefas.


GOSTEI 0
Motta

Motta

07/05/2004

Marcos, a questão da componentização e que o gerenciamento disto é um pouco mais complexo.

Esta discussão é interressante, poderiamos estende-la.


GOSTEI 0
POSTAR