Francisco,

> Em um cliente, do meu antigo emprego, o sistema demorava muito pra carregar.
> Fizemos vários testes e nada, o aplicativo sempre iniciava muito lentamente.
> Coisa de 15 minutos.
> 
> Um dia, por acidente, levamos o aplicativo sem estar compactado com o UPX...
> adivinhem? Abriu instantaneamente.
> 
> Mais tarde agente descobriu que quem fazia toda essa demora era o Norton,
> então 2004.

De fato, boa parte dos anti-vírus ainda tem dificuldade em lidar com 
aplicativos compactados que se expandem na memória. Também tive esse 
mesmo problema com o UPX e logo vi que desligando o anti-vírus tudo 
funcionava perfeitamente. Pena que a maioria dos usuários não sobrevive 
sem um anti-vírus residente...

Li que alguns anti-vírus hoje já identificam tratar-se de aplicativo 
compactado...

> Outra desvantagem (me corrijam se estiver errado) é que uma vez o executável
> "zipado", ele deve ser carregado completamente durante a sua abertura....
> Menos um ponto pra ele....

Também correto! O executável compactado vai inteiro para a memória (mais 
rápido que o original, que é bem maior) e depois é descompactado (bem 
mais rápido que uma descompactação que fazemos via sistema de arquivos 
pois todo o executável já está na memória). Isso acarreta num certo 
atraso na entrada do programa no ar.

Outro problema é que o Windows não consegue compartilhar a porção de 
código executável do seu aplicativo com outras instâncias, caso você 
venha rodar várias instâncias de seu aplicativo.

Outro problema ainda mais grave é de memória. Se o SO tiver memória para 
carregar 2MB mas não tiver para carregar os outros 7MB resultantes do 
processo de descompactação...

Outro problema é que o total de memória utilizado acaba sendo maior- um 
pouco para a porção compactada e outro para a versão descompactada. Não 
sei quando a porção compactada sai da memóra...

> Então acredito que o melhor é trabalhar com o aplicativo "não compactado" e
> com o menor número de gráficos embutidos. Se ainda assim ficar grande, apele
> para modularização (com dll's eu packages)

Sim, por isso falei que se tratava de um ninho de cobras.

Um dos compactadores pode ser usado sem problemas, acredito. Ele apenas 
retira do EXE final uma porção que normalmente não é utilizada de todo modo.

Acredito que a tecnologia de compactadores de executável só trará reais 
benefícios quando a descompactação puder ser realizada sob demanda- isto 
é, a cada instrução solicitada. Mas isso irá requere um alto grau de 
sofisticação dos diversos componentes, especialmente a descompactação e 
descodificação parcial do exe compactado/codificado. Não vejo isso nos 
nossos PCs num futuro tão próximo assim. ;)

Cordialmente,

Demian Lessa
Salvador - Brasil


-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a