Tamanho do exe

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

TerraSoftware
Usuário Nível 3
Usuário Nível 3
Mensagens: 353
Registrado em: 28 Jul 2004 13:14
Localização: Cianorte-PR
Contato:

Tamanho do exe

Mensagem 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 !!! :%
Editado pela última vez por TerraSoftware em 09 Mai 2008 08:18, em um total de 1 vez.
www.sisterra.com.br
xHarbour 1.0.0 - Bcc 6.3 - Gtwvw/Hwgui
DbfCdx/MySql
Avatar do usuário
Daniel
Usuário Nível 3
Usuário Nível 3
Mensagens: 373
Registrado em: 13 Ago 2003 22:42
Localização: Apucarana - PR

Re: Tamanho do exe

Mensagem 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??
Daniel

Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Re: Tamanho do exe

Mensagem 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.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Tamanho do exe

Mensagem 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.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
TerraSoftware
Usuário Nível 3
Usuário Nível 3
Mensagens: 353
Registrado em: 28 Jul 2004 13:14
Localização: Cianorte-PR
Contato:

Re: Tamanho do exe

Mensagem 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!
www.sisterra.com.br
xHarbour 1.0.0 - Bcc 6.3 - Gtwvw/Hwgui
DbfCdx/MySql
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Luciano Bonfim
Usuário Nível 3
Usuário Nível 3
Mensagens: 414
Registrado em: 23 Ago 2007 09:34
Localização: Rio de Janeiro / São Paulo
Contato:

Re: Tamanho do exe

Mensagem 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...
Muito Obrigado,

Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Avatar do usuário
vagucs
Membro Master
Membro Master
Mensagens: 1480
Registrado em: 10 Jul 2004 10:45
Localização: Ipanema - MG
Contato:

Re: Tamanho do exe

Mensagem 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.
Sem mais
Wagner Nunes
www.vagucs.com.br
Responder