File size and smartlinking/ja: what changed
Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.
Title: File size and smartlinking/ja
| Old | New | Line | |
|---|---|---|---|
| 1 | + | この記事はLazarus上で実行ファイルサイズとスマートリンクについて記述しています。 まだまだ作業途中のものなので、自由に書き込んでください。 | |
| 2 | + | ||
| 3 | + | ## 導入 | |
| 4 | + | ||
| 5 | + | ## Windows環境での実例 | |
| 6 | + | ||
| 7 | + | この調査は、2006年2月8日、Lazarusが完全にスマートリンクされ、0.9.12としてリリースコンパイルされた時におこなわれました。異なった環境でのLazarus、スマートリンカのあるなし、FreePascalのバージョンとの組み合わせで、いろいろな結果になりました。 | |
| 8 | + | ||
| 9 | + | 調査した条件は下記のようなものです。 | |
| 10 | + | ||
| 11 | + | - strip後の実行ファイルサイズ | |
| 12 | + | - stripとUPX後の実行ファイルサイズ | |
| 13 | + | - リンク時間 | |
| 14 | + | ||
| 15 | + | コンパイル時間はここでは考慮しませんでした。リンク時間と比較して、さほど有意な違いがなかったからです。 | |
| 16 | + | ||
| 17 | + | stripなしの実行ファイルサイズについても比較しませんでした。 | |
| 18 | + | ||
| 19 | + | stripはコマンドラインから、下記のコマンドでおこないます。 | |
| 20 | + | ||
| 21 | + | strip --strip-all magnifier.exe | |
| 22 | + | ||
| 23 | + | コンパイルで実験するプログラムは「仮想の拡大鏡プログラム」です。 このプログラムのソースとバイナリーは、自由に使ってください。 | |
| 24 | + | ||
| 25 | + | ダウンロードは、こちら: <http://magnifier.sourceforge.net> | |
| 26 | + | ||
| 27 | + | リンク時間について調査したコンピュータは、インテルマザーボードと、3.2GHzのデュアルコアPentium4、512MBのRAMのものです。 | |
| 28 | + | ||
| 29 | + | **結果** | |
| 30 | + | ||
| 31 | + | 利用したOSはWindows XP、そして、0.9.12がリリースされたときと同じ日の0.9.13のLazarusを利用しました。 この比較は以下のソフトウェアのコンフィグレーションで行われました: | |
| 32 | + | ||
| 33 | + | - [here](http://sourceforge.net/project/showfiles.php?group_id=89339)で利用可能なLazarus 0.9.12と、そのインストーラで入る Free Pascal 2.0.2。LCLとRTLはスマートリンクされたものです。以降、これらを単に0.9.12とします。 | |
| 34 | + | ||
| 35 | + | - 同じ日のサブバージョンとしてダウンロードできる Lazarus 0.9.13。FreePascal 2.0.2を別にインストールします。LCLはスマートリンクされていません。 以降、これらを単に 0.9.13+2.0.2とします。 | |
| 36 | + | ||
| 37 | + | - Lazarus 0.9.13スナップショット。インストーラで一緒に入ってくる Free Pascal 2.1。LCLはスマートリンクされていません。以降、これらを単に 0.9.13+2.1とします。 | |
| 38 | + | ||
| 39 | + | - Lazarus 0.9.13スナップショット。インストーラで一緒に入ってくる Free Pascal 2.1。LCLはスマートリンクされていません。以降、これらを単に 0.9.13+2.1とします。 | |
| 40 | + | ||
| 41 | + | - Lazarus 0.9.13スナップショット。インストーラで一緒に入ってくる Free Pascal 2.1。LCLはスマートリンクされています。以降、これらを単に 0.9.13+2.1+SLとします。 | |
| 42 | + | ||
| 43 | + | | | 0.9.12 | 0.9.13 + 2.0.2 | 0.9.13 + 2.1 + SL | 0.9.13 + 2.1 | | |
| 44 | + | |----|----|----|----|----| | |
| 45 | + | | strip後のファイルサイズ (バイト) | 1108480 | 1587712 | 1425408 | 1649152 | | |
| 46 | + | | UPX後のファイルサイズ (in bytes) | 318976 | 438272 | 388608 | 454144 | | |
| 47 | + | | リンク時間 | 15 秒 | 5 秒 | 45 秒 | 10 秒 | | |
| 48 | + | ||
| 49 | + | **結論** | |
| 50 | + | ||
| 51 | + | 2006年2月8日の0.9.13スナップショットは、unstableな2.1ブランチからのコンパイラであることに注意してください。そのコンパイラは、他のバージョンと比べて大きめの実行ファイルと、リンクに時間がかかる原因になっています。 0.9.12は、UPXのあり、なしにかかわらず、すべてに対してファイルサイズが最適に小さくなります。つまり、SmartlinkingはWindowsでのファイルサイズを減少させることができる、ということです。しかしながら、これは、リンク時間がかかる、という代償がついています。スマートリンクなしよりも3倍の時間です。 0.9.12は、すでにスマートリンクのためにWindowsで完全に設定されています。どんな追加設定も必要ではありません。 スマートリンクに関しては、これは以前のリリースでのそうではありませんでした。 | |
| 52 | + | ||
| 53 | + | ## そのほかの関連情報 | |
| 54 | + | ||
| 55 | + | - [Guide](http://members.chello.sk/ales/guide.html) for anyone inexperienced in getting FPC and Lazarus to work properly. | |
| 56 | + | ||
| 57 | + | --- | |
| 58 | + | *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](/wiki-contact).* |
