Página 1 de 1

Tamanho do exe

Enviado: 08 Mai 2008 11:59
por TerraSoftware
Caros colegas.

Até que ponto o tamanho do executável interfere no uso da memória?
Um executavel maior fisicamente exige mais memoria da maquina do que um executavel menor? Ou o que realmente exige muita memoria sao as variaveis publicas?

Estou tendo problemas com maquinas com pouca memoria, tipo 32 megas. O que devo fazer para melhorar? dinimuir as variaveis publicas ou fracionar o executavel?

É melhor (para a memoria da maquina) eu ter um executavel somente com tudo dentro dele ou é melhor eu ter vários exes, um chamando o outro?

Uma luz por favor !!! :%

Re: Tamanho do exe

Enviado: 08 Mai 2008 17:22
por Daniel
na minha opinião seria um execultavel principal e modulos com outros execultaveis. dai ficaria blocos de memoria menores.
Uma ideia sera q funciona com dlls??

Re: Tamanho do exe

Enviado: 10 Mai 2008 15:08
por rochinha
Amiguinho

Maquinas com 32Megas? Melhor colocar mais memória.

Se forem maquinas com memórias antigas que não se encontram mais melhor abandona-las ou pendura-las a um servidor rodando Terminal Service, deixando o servidor com toda a carga.

Uma vez tive a oportunidade de pendurar um P100 com Windows 95 e 32RAM acessando via TS um servidor P500 com 256RAM e rodava que era uma beleza, mas só fiz isto porque o cliente achava ser mais sensato usar o que tinha do que gastar em maquina nova pra usuário ficar no msn.

Re: Tamanho do exe

Enviado: 10 Mai 2008 16:40
por Maligno
rochinha escreveu:o cliente achava ser mais sensato usar o que tinha do que gastar em maquina nova pra usuário ficar no msn.
Nem sempre é isso o que acontece. Mas também não se pode tirar totalmente a razão dele.

Re: Tamanho do exe

Enviado: 11 Mai 2008 21:39
por TerraSoftware
Caros colegas, nao gostaria de entrar na questao da maquina, trocar por uma melhor ou nao, isso é outra história.
O que quero mesmo é entender a questao de alocaçao de memoria, o que devo fazer pra ter um executável que possa rodar em maquinas relativamentes fracas.
Se alguem puder me ajudar, agradeço!

Enviado: 11 Mai 2008 21:55
por Maligno
Acho que uma provável boa solução é você segmentar o programas em DLLs. É uma alternativa que, além de diminuir a carga da aplicação, também auxilia na etapa de manutenção.

Re: Tamanho do exe

Enviado: 12 Mai 2008 11:09
por Luciano Bonfim
Sugiro que vc revise seu código e utilize variáveis locais no lugar de privadas e se possível elimine todas as variáveis públicas... esse procedimento melhora a utilizaçäo da memória, só näo sei se vai resolver seu problema por completo...

Re: Tamanho do exe

Enviado: 12 Mai 2008 13:50
por vagucs
O tamanho do EXE influencie sim, no uso da memoria, mas pouca coisa, os problemas no geral são mais relacionados a uso indiscriminado de variaveis do que com o tamanho do EXE. Dependendo do tamanho das suas rotinas, obviamente, elas são alocadas na memoria e consumindo espaço na mesma, o uso de DLL pode trazer uma redução neste uso de memoria, você perde num ponto e ganha em outro. Perde no quesito distriuição do EXE, onde tem que mandar o EXE e as DLLs o que pode dificultar a distribuição e versionamento do sistema (Exige mais controle e atenção), o tempo de carregamento do sistema no geral fica mais lento, pois ele tem que carregar as DLLs em runtime. A vantagem é que a memoria consumida pelo EXE vai cair, nao na primeira sessão do programa, onde as rotinas vão ser efetivamentes carregadas, mas somente para as sessões posteriores, todas as rotinas de DLL não são realocadas para uso de outros programas, ou seja, se seu sistema carregar 10 DLLs e alocar elas na memoria, e um outro programa for usar rotinas da mesma DLL, elas usam o mesmo codigo EXE em memoria, evitando a re-alocação para a mesma rotina ir para outra parte da memoria, dai um ganho se você for executar mais de uma sessão do seu sistema na mesma máquina, se nao for o caso, esqueça, é trabalho para mais dor de cabeça.

Compactar o EXE nem pensa, ele apenas reduz o tamanho do EXE em disco, o consumo de memoria aumenta e o tempo de carregamento tambem, pois ele se auto-descompacta na memoria.

Para um aplicativo de DOS, antigamente o pessoal dividia o programa num monte de EXE, para evitar problemas com as limitações de memoria. No Windows não é uma pratica muito comum (nem indicada). Logo, a melhor solução é aumentar a memoria, para ter melhor desempenho; se a placa-mãe permitir, usar memória mais rapida e logo a última solução, trocar o micro, que 32megas tem tempo que eu não vejo.