File size and smartlinking/pt
Deutsch · English · Français · Português · 中文(中国) · 日本語
Este artigo é um "work in progress" sobre tamanho do executável e smartlinking em Lazarus. Esteja à vontade para contribuir.
Introdução
Estudo de Caso 1 em Windows
Este estudo de caso foi realizado em 8 de fevereiro de 2006 porque uma versão com SmartLinking (0.9.12) foi publicada. Ele pretende estabelecer uma relação entre a variação dos resultados abaixo e diferentes versões do Lazarus e do compilador FreePascal, tanto quanto entre versões com e sem o SmartLinking. As variáveis estudadas são:
- Tamanho do executável depois de usar o strip.exe
- Tamanho do executável depois de usar o upx.exe
- Tempo de linkagem
O tempo de compilação não é considerado aqui porque é muito similar em todas as configurações e muito menos significativo que o tempo de linkagem. O tamanho do executável sem o strip.exe não incluído. Note que o strip é usado sempre da linha de comando com:
strip --strip-all magnifier.exeO programa sendo compilado é o Virtual Magnifying Glass. Os fontes e o arquivo binário estão disponíiveis para download em http://magnifier.sourceforge.net Sobre o tempo de linkagem note que o computador utilizado é um Pentium 4 3.2GHz, placa-mãe Intel e processador dual core com 512MB de RAM.
Resultados
O sistema operacional é o Windows XP e as versões 0.9.13 são da mesma data em que a versão 0.9.12 foi publicada. A comparação foi feita usando a seguinte configuração de software:
- Lazarus 0.9.12 disponível aqui. Free Pascal 2.0.2 que vem com o instalador do Lazarus. LCL e RTL são smartlinked. Referidos daqui para diante 0.9.12.
- Lazarus 0.9.13 baixado do Subversion na mesma data. Free Pascal 2.0.2 instalado separadamente. LCL não smartlinked. Referidos daqui para diante como 0.9.13 + 2.0.2
- Lazarus 0.9.13 snapshot. Free Pascal 2.1 que vem com o instalador do Lazarus. LCL não smartlinked. Referidos daqui para diante como 0.9.13 + 2.1.
- Lazarus 0.9.13 snapshot. Free Pascal 2.1 que vem com o instalador do Lazarus. A LCL é smartlinked. Referidos daqui para diante como 0.9.13 + 2.1 + SL.
| 0.9.12 | 0.9.13 + 2.0.2 | 0.9.13 + 2.1 + SL | 0.9.13 + 2.1 | |
|---|---|---|---|---|
| Tamanho do executável depois do strip (em bytes) | 1108480 | 1587712 | 1425408 | 1649152 |
| Tamanho do executável depois do UPX (em bytes) | 318976 | 438272 | 388608 | 454144 |
| Tempo de Linkagem | 15 seconds | 5 seconds | 45 seconds | 10 seconds |
Conclusão
O snapshot do 0.9.13 de 8 de fevereiro de 2006 gera um compilador instável da 2.1 branch, que resulta em um executável maior e um SmartLinking mais lento quando comparado com outras versões.
A versão 0.9.12 teve o melhor tamanho de executável de todas, com ou sem upx, demonstrando que SmartLinking pode realmente diminuir o tamanho do executável no Windows. Entretanto isso tem um custo, que é o tempo de linkagem de aproximadamente 3 vezes maior que o tempo sem SmartLinking.
A versão 0.9.12 já vem com o SmartLinking em Windows pré-configurado. Não era o caso nas versões anteriores.
Veja também
- Guide for anyone inexperienced in getting FPC and Lazarus to work properly.
From the Free Pascal wiki, page "File size and smartlinking/pt", as it stood on 2007-03-08 after a change by Swen, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.
Talk about this page
Nobody has opened a bench for this page yet. Sign in to open one.
