File size and smartlinking/ja

From Free Pascal wiki
Revision as of 02:15, 6 May 2006 by Saeka-jp (talk | contribs)
Jump to navigationJump to search

Deutsch (de) English (en) français (fr) 日本語 (ja) português (pt) 中文(中国大陆)‎ (zh_CN)

この記事はLazarus上で実行ファイルサイズとスマートリンクについての作業中のものです。自由にコントリビュートしてください。

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

イントロダクション

Windowsで1つのケーススタディ

この研究はLazarusが完全にスマートリンクされ、0.9.12としてリリースコンパイルされた2006年2月8日におこなわれました。異なった環境のLazarusのスマートリンカのあるなしFreePascalのバージョンとの組み合わせで、いろいろな結果になりました。

研究したいろんな条件は下記のようなものです。

  • strip後の実行ファイルサイズ
  • stripとUPX後の実行ファイルサイズ
  • リンク時間


コンパイル時間はここでは考慮しませんでした。なぜなら、すべてのコンフィグレーションにおいて、リンク時間と比較して、さほど有意な違いがなかったからです。

stripなしの実行ファイルサイズについても比較しませんでした。stripはコマンドラインから、下記のコマンドでおこなうことに、注意してください。

strip --strip-all magnifier.exe

コンパイルされるプログラムは「仮想の拡大鏡プログラム」です。このプログラムのソースとバイナリーは、自由に使っていただいて結構です。ダウンロードは、こちら: http://magnifier.sourceforge.net

リンク時間について利用したコンピュータは、インテルマザーボードと、3.2GHzのデュアルコアPentium4、512MBのRAMのものです。


結果

利用したOSはWindows XP、そして、0.9.12がリリースされたときと同じ日の0.9.13のLazarusを利用しました。 この比較は以下のソフトウェアのコンフィグレーションで行われました:

  • hereで利用可能なLazarus 0.9.12と、そのインストーラで入る Free Pascal 2.0.2。LCLとRTLはスマートリンクされたものです。以降、これらを単に0.9.12とします。
  • 同じ日のサブバージョンとしてダウンロードできる Lazarus 0.9.13。FreePascal 2.0.2を別にインストールします。LCLはスマートリンクされていません。 以降、これらを単に 0.9.13+2.0.2とします。
  • Lazarus 0.9.13スナップショット。インストーラで一緒に入ってくる Free Pascal 2.1。LCLはスマートリンクされていません。以降、これらを単に 0.9.13+2.1とします。
  • Lazarus 0.9.13スナップショット。インストーラで一緒に入ってくる Free Pascal 2.1。LCLはスマートリンクされていません。以降、これらを単に 0.9.13+2.1とします。
  • Lazarus 0.9.13スナップショット。インストーラで一緒に入ってくる Free Pascal 2.1。LCLはスマートリンクされています。以降、これらを単に 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
strip後のファイルサイズ (バイト) 1108480 1587712 1425408 1649152
UPX後のファイルサイズ (in bytes) 318976 438272 388608 454144
リンク時間 15 秒 5 秒 45 秒 10 秒


結論

2006年2月8日の0.9.13スナップショットは、unstableな2.1ブランチからのコンパイラであることに注意してください。そのコンパイラは、他のバージョンと比べて大きめの実行ファイルと、リンクに時間がかかる原因になっています。 0.9.12は、UPXのあり、なしにかかわらず、すべてに対してファイルサイズが最適に小さくなります。つまり、SmartlinkingはWindowsでのファイルサイズを減少させることができる、ということです。しかしながら、これは、リンク時間がかかる、という代償がついています。スマートリンクなしよりも3倍の時間です。 0.9.12は、すでにスマートリンクのためにWindowsで完全に設定されています。どんな追加設定も必要ではありません。 スマートリンクに関しては、これは以前のリリースでのそうではありませんでした。

さらなる情報

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