Difference between revisions of "File size and smartlinking"

From Free Pascal wiki
Jump to navigationJump to search
m
Line 6: Line 6:
  
 
This study was conducted on 8 february of 2006 and intends to stablish the relations between variables bellow with different Lazarus and Free Pascal versions as well as with Smartlinking and without.
 
This study was conducted on 8 february of 2006 and intends to stablish the relations between variables bellow with different Lazarus and Free Pascal versions as well as with Smartlinking and without.
 +
  
 
The Variables being studied are:
 
The Variables being studied are:
Line 12: Line 13:
 
* Executable size after strip and UPX
 
* Executable size after strip and UPX
 
* Linking time
 
* Linking time
 +
  
 
Compile time wasn´t included because it´s too similar on all configurations and also much smaller then the link time.
 
Compile time wasn´t included because it´s too similar on all configurations and also much smaller then the link time.
 +
  
 
Executable size without strip wasn´t included. Notice that strip was used always from command line with the command:
 
Executable size without strip wasn´t included. Notice that strip was used always from command line with the command:
Line 20: Line 23:
 
strip --strip-all magnifier.exe
 
strip --strip-all magnifier.exe
 
</pre>
 
</pre>
 +
  
 
The program being compiled is the Virtual Magnifying Glass. The source and binaries for this program are freely available for download on: magnifier.sourceforge.net
 
The program being compiled is the Virtual Magnifying Glass. The source and binaries for this program are freely available for download on: magnifier.sourceforge.net
 +
  
 
About the linking time please note that the utilized computer is 3.2GHz Pentium 4 with Intel motherboard and dual core processor.
 
About the linking time please note that the utilized computer is 3.2GHz Pentium 4 with Intel motherboard and dual core processor.
 +
 +
 +
'''Results'''
 +
  
 
The comparison took place about the following software configurations, all in Windows XP:
 
The comparison took place about the following software configurations, all in Windows XP:
Line 34: Line 43:
  
 
* Lazarus 0.9.13 snapshot. Free Pascal 2.1 that comes with the installer. The LCL is smartlinked. Refered from now on as simply 0.9.13 + 2.1 + SL.
 
* Lazarus 0.9.13 snapshot. Free Pascal 2.1 that comes with the installer. The LCL is smartlinked. Refered from now on as simply 0.9.13 + 2.1 + SL.
 +
  
 
{| border=2 width="100%"
 
{| border=2 width="100%"
Line 45: Line 55:
  
 
|-
 
|-
! File Size after strip
+
! File Size after strip (in bytes)
 
| align="center" | 1108480
 
| align="center" | 1108480
 
| align="center" | 1587712
 
| align="center" | 1587712
Line 52: Line 62:
  
 
|-
 
|-
! File Size after UPX
+
! File Size after UPX (in bytes)
 
| align="center" | 318976
 
| align="center" | 318976
 
| align="center" | 438272
 
| align="center" | 438272
Line 67: Line 77:
  
 
|}
 
|}
 +
 +
'''Conclusion'''
 +
 +
The 0.9.13 snapshot from 8 of february of 2006 features a unstable compiler from the 2.1 branch, which can cause the bigger executables and slower linking as compared to the other versions.
 +
 +
 +
The 0.9.12 version has the best file size of all, both with UPX and without, showing that Smartliking really can diminish the file size in Windows. This, however, does not come without a cost, and the cost is linking time, which is about 3 times higher then without smartlinking.
 +
 +
 +
The 0.9.12 version already comes fully configured for Smartlinking on Windows and no extra configuration is needed.
  
 
==See Also==
 
==See Also==
  
 
* [http://members.chello.sk/ales/guide.html Guide] for anyone inexperienced in getting FPC and Lazarus to work properly.
 
* [http://members.chello.sk/ales/guide.html Guide] for anyone inexperienced in getting FPC and Lazarus to work properly.

Revision as of 15:50, 8 February 2006

This article is a work in progress about executable size and smartlinking on Lazarus. Fell free to contribute.

Introduction

Case study 1 in Windows

This study was conducted on 8 february of 2006 and intends to stablish the relations between variables bellow with different Lazarus and Free Pascal versions as well as with Smartlinking and without.


The Variables being studied are:

  • Executable size after strip
  • Executable size after strip and UPX
  • Linking time


Compile time wasn´t included because it´s too similar on all configurations and also much smaller then the link time.


Executable size without strip wasn´t included. Notice that strip was used always from command line with the command:

strip --strip-all magnifier.exe


The program being compiled is the Virtual Magnifying Glass. The source and binaries for this program are freely available for download on: magnifier.sourceforge.net


About the linking time please note that the utilized computer is 3.2GHz Pentium 4 with Intel motherboard and dual core processor.


Results


The comparison took place about the following software configurations, all in Windows XP:

  • Lazarus 0.9.12 available here. Free Pascal 2.0.2 that comes with the installer. LCL and RTL are smartlinked. Refered from now on as simply 0.9.12.
  • Lazarus 0.9.13 downloaded from Subversion. Free Pascal 2.0.2 installed separately. The LCL is not smartlinked. Refered from now on as simply 0.9.13 + 2.0.2.
  • Lazarus 0.9.13 snapshot. Free Pascal 2.1 that comes with the installer. The LCL is not smartlinked. Refered from now on as simply 0.9.13 + 2.1.
  • Lazarus 0.9.13 snapshot. Free Pascal 2.1 that comes with the installer. The LCL is smartlinked. Refered from now on as simply 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
File Size after strip (in bytes) 1108480 1587712 1425408 1649152
File Size after UPX (in bytes) 318976 438272 388608 454144
Linking time 15 seconds 5 seconds 45 seconds 10 seconds

Conclusion

The 0.9.13 snapshot from 8 of february of 2006 features a unstable compiler from the 2.1 branch, which can cause the bigger executables and slower linking as compared to the other versions.


The 0.9.12 version has the best file size of all, both with UPX and without, showing that Smartliking really can diminish the file size in Windows. This, however, does not come without a cost, and the cost is linking time, which is about 3 times higher then without smartlinking.


The 0.9.12 version already comes fully configured for Smartlinking on Windows and no extra configuration is needed.

See Also

  • Guide for anyone inexperienced in getting FPC and Lazarus to work properly.