File size and smartlinking/ja
Deutsch · English · Français · Português · 中文(中国) · 日本語
この記事はLazarus上で実行ファイルサイズとスマートリンクについて記述しています。 まだまだ作業途中のものなので、自由に書き込んでください。
導入
Windows環境での実例
この調査は、2006年2月8日、Lazarusが完全にスマートリンクされ、0.9.12としてリリースコンパイルされた時におこなわれました。異なった環境での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.
From the Free Pascal wiki, page "File size and smartlinking/ja", as it stood on 2008-03-31 after a change by Saeka-jp, 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.
