Difference between revisions of "File size and smartlinking/ja"
m |
|||
Line 7: | Line 7: | ||
__TOC__ | __TOC__ | ||
− | == | + | ==イントロダクション== |
− | == | + | ==Windowsで1つのケーススタディ== |
− | この研究はLazarusが完全にスマートリンクされ、0.9. | + | この研究はLazarusが完全にスマートリンクされ、0.9.12としてリリースコンパイルされた2006年2月8日におこなわれました。異なった環境のLazarusのスマートリンカのあるなしFreePascalのバージョンとの組み合わせで、いろいろな結果になりました。 |
− | |||
− | |||
研究したいろんな条件は下記のようなものです。 | 研究したいろんな条件は下記のようなものです。 | ||
Line 21: | Line 19: | ||
*リンク時間 | *リンク時間 | ||
− | |||
− | + | コンパイル時間はここでは考慮しませんでした。なぜなら、すべてのコンフィグレーションにおいて、リンク時間と比較して、さほど有意な違いがなかったからです。 | |
− | |||
− | |||
− | |||
− | |||
stripなしの実行ファイルサイズについても比較しませんでした。stripはコマンドラインから、下記のコマンドでおこなうことに、注意してください。 | stripなしの実行ファイルサイズについても比較しませんでした。stripはコマンドラインから、下記のコマンドでおこなうことに、注意してください。 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
<pre> | <pre> | ||
Line 40: | Line 28: | ||
</pre> | </pre> | ||
− | + | コンパイルされるプログラムは「仮想の拡大鏡プログラム」です。このプログラムのソースとバイナリーは、自由に使っていただいて結構です。ダウンロードは、こちら: http://magnifier.sourceforge.net | |
リンク時間について利用したコンピュータは、インテルマザーボードと、3.2GHzのデュアルコアPentium4、512MBのRAMのものです。 | リンク時間について利用したコンピュータは、インテルマザーボードと、3.2GHzのデュアルコアPentium4、512MBのRAMのものです。 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
Line 65: | Line 48: | ||
*Lazarus 0.9.13スナップショット。インストーラで一緒に入ってくる Free Pascal 2.1。LCLはスマートリンクされています。以降、これらを単に 0.9.13+2.1+SLとします。 | *Lazarus 0.9.13スナップショット。インストーラで一緒に入ってくる Free Pascal 2.1。LCLはスマートリンクされています。以降、これらを単に 0.9.13+2.1+SLとします。 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{| border=2 width="100%" | {| border=2 width="100%" | ||
Line 112: | Line 84: | ||
'''結論''' | '''結論''' | ||
− | 2006年2月8日の0.9.13スナップショットは、unstableな2. | + | 2006年2月8日の0.9.13スナップショットは、unstableな2.1ブランチからのコンパイラであることに注意してください。そのコンパイラは、他のバージョンと比べて大きめの実行ファイルと、リンクに時間がかかる原因になっています。 |
− | 0.9. | + | 0.9.12は、UPXのあり、なしにかかわらず、すべてに対してファイルサイズが最適に小さくなります。つまり、SmartlinkingはWindowsでのファイルサイズを減少させることができる、ということです。しかしながら、これは、リンク時間がかかる、という代償がついています。スマートリンクなしよりも3倍の時間です。 |
− | 0.9. | + | 0.9.12は、すでにスマートリンクのためにWindowsで完全に設定されています。どんな追加設定も必要ではありません。 スマートリンクに関しては、これは以前のリリースでのそうではありませんでした。 |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | == | + | ==さらなる情報== |
* [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 02:15, 6 May 2006
│
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.