喫茶XRAYトップページ
[5216]
Delphi XE2で作成されるEXEのサイズって・・・
返信
削除
2011/9/9 (金) 12:59:26
Sara
みなさん こんにちは。
Delphi Xe2で作成されるEXEのサイズって、大きすぎません?
ボタンを1個置いた状態でShowMessageをするだけのEXEを作成すると・・・
Delphi XE2・・・6917KB・・・
Delphi XE ・・・972KB・・・
家の環境が変なだけ?(^^;
まぁ、Webで調べるとXEからXE2はEXEサイズが増えているようですが、
こんなに極端な差はでていないんだが・・・
なにがいけないんだろ・・・(^^;
[5217]
Re:Delphi XE2で作成されるEXEのサイズって・・・
返信
削除
2011/9/9 (金) 13:20:19
Mr.XRAY
▼ Saraさん
> なにがいけないんだろ・・・(^^;
それはですね.生まれてから今まで,ほら,悪いこといっぱいしたでしょう?
と言うことはないですよね.
おそらく,機能追加の処理部分が入っているので,それらリンカでリンクさ
れるためではないかと思います.usesから不要な部分を削除すると,少しは
小さくなるのではないかと思います.
EXEが大きくなったと言っても,そのために起動や処理が遅くということでは
ないので気にしない方が...
あまり気にすると頭がハゲ... じゃない.薄くなっちゃうかも.
先の印刷のテストプログラムのサイズは,8,763 KBでした.
EXEのサイズは,アプリのコードを(uses部分が多くなると)どんどん増えて
いきますが,その増え方は,徐々に少なくなってきますよね.
(共通処理部分が増えるので)
ボタン1個や,フォーム(TForm)1個ぐらいで比較すると,Delphiのバージョン
の差が目立つことになりますね.
面白いと言えば,面白いでしょうけど.
[5218]
Re2:Delphi XE2で作成されるEXEのサイズって・・・
返信
削除
2011/9/9 (金) 13:29:06
Mr.XRAY
> おそらく,機能追加の処理部分が入っているので,それらリンカでリンクさ
> れるためではないかと思います.
例えば,32bitの変数が64bitになれば,サイズは2倍です.
計算に間違いがなければ...
また,昔,array [0..MAX_PATH-1] of CharのMAX_PATHは256でしたが,
今は1024です(Delphi 2010).これは4倍です.
[5219]
Re2:Delphi XE2で作成されるEXEのサイズって・・・
返信
削除
2011/9/9 (金) 13:42:00
Mr.XRAY
> EXEが大きくなったと言っても,そのために起動や処理が遅くということでは
> ないので気にしない方が...
例えば,EXEにビットマップを埋め込む場合,
(1) EXE に埋め込む - リソースの使い方
http://
mrxray.
on.
coocan.
jp/
Halbow/
Notes/
N008.
html
(2) TPicture と TStringList のカプセル化
http://
mrxray.
on.
coocan.
jp/
Halbow/
Notes/
N005.
html
とでは,(1)の方法の方がEXEの起動が早いです.
ただし,今のPCは性能がいいので,よほど大きいサイズのビットマップ
でないと,差が出ないとは思います.
コーディングにもよるという例です.
[5220]
Re3:Delphi XE2で作成されるEXEのサイズって・・・
返信
削除
2011/9/9 (金) 15:15:27
Sara
▼ Mr.XRAYさん
> usesから不要な部分を削除すると,少しは小さくなるのではないかと思います.
んー 初期表示されたフォームにボタンを追加しただけなので、あまり不要なユニットが
あるわけではないと思われますが・・・(^^;
> 例えば,32bitの変数が64bitになれば,サイズは2倍です.
まだ、64Bitには手をだしていないので、32Bitなんです・・・
> EXEが大きくなったと言っても,そのために起動や処理が遅くということでは
そうですね、遅くはないようです。
それに、他の方のHPを見ていると、XE2で1.5MB程度だとか書いてあるし・・・
家のは7MB弱あるし・・・
コンポーネントの登録数とか関係あるのかな・・・
usesになにも指定していないけど・・・
不明だ・・・
とりあえず、現状作っていたプロジェクトが500KB程度増加しているのは、
まぁ(許したくないけど)許せますが・・・今後小さいプログラムの開発を
しても、ちっとも小さくないと・・・(^^;
まぁ、Exeの圧縮を行えばある程度小さくなるのでしょうが・・・
話は変わりますが、TRectの定義が変わっていますね・・・
with Result do begin
left := 0;
top := 0;
right := 100;
bottom := 100;
end;
みたいなことをしても、正常にrightとbottomに値が入らないことがあるようです。
withを使わなければ、もちろん入りますが・・・何故・・・
[5221]
Re4:Delphi XE2で作成されるEXEのサイズって・・・
返信
削除
2011/9/9 (金) 15:53:24
Mr.XRAY
▼ Saraさん
> それに、他の方のHPを見ていると、XE2で1.5MB程度だとか書いてあるし・・・
> 家のは7MB弱あるし・・・
これは小さいですね.何か,デバッグ情報を含めない等の設定なのかな?
EXEのサイズにはあまり興味がないので(ゴメンなさい!)
他の方にバトンタッチ.でも,まだユーザが少ないので情報も少ないかも.
> みたいなことをしても、正常にrightとbottomに値が入らないことがあるようです。
> withを使わなければ、もちろん入りますが・・・何故・・・
あら?
[5223]
Re5:Delphi XE2で作成されるEXEのサイズって・・・
返信
削除
2011/9/9 (金) 21:20:48
Mr.XRAY
> EXEのサイズにはあまり興味がないので(ゴメンなさい!)
昔のように,配布する際にフロッピーディスクに収まらないとか,
HDD(ハードディスク)の容量が気になるとか,
ネット上の速度が問題になるとか,
があると関心が持てるんですが.
それにしても,1.5MBというはちょっと気になりますね.
一体どうしたらそんなサイズになるんだろう?
[5225]
Re:Delphi XE2で作成されるEXEのサイズって・・・
返信
削除
2011/9/9 (金) 22:25:48
igy
私のところのXE2では、
VCL フォームアプリケーション を新規作成・保存し、コンパイル。
32ビット Windows、ビルド構成:Debug サイズ:7,098,205
32ビット Windows、ビルド構成:Release サイズ:1,589,760
64ビット Windows、ビルド構成:Debug サイズ:7,921,097
64ビット Windows、ビルド構成:Release サイズ:2,315,264
でした。
[5226]
Re2:Delphi XE2で作成されるEXEのサイズって・・・
返信
削除
2011/9/9 (金) 23:22:14
Mr.XRAY
▼ igyさん,こんにちは.
> 32ビット Windows、ビルド構成:Debug サイズ:7,098,205
> 32ビット Windows、ビルド構成:Release サイズ:1,589,760
Releaseでのサイズなんですね.納得しました.
[5228]
Re3:Delphi XE2で作成されるEXEのサイズって・・・
返信
削除
2011/9/9 (金) 23:31:05
Sara
▼ Mr.XRAYさん
▼ igyさん,こんにちは.
>
> > 32ビット Windows、ビルド構成:Debug サイズ:7,098,205
> > 32ビット Windows、ビルド構成:Release サイズ:1,589,760
>
> Releaseでのサイズなんですね.納得しました.
いやそれが・・・ Releaseにしても変わらないんです・・・(^^;
やっぱり、環境が変?(^^;
いれなおしてみようかなぁ・・・
[5230]
Re4:Delphi XE2で作成されるEXEのサイズって・・・
返信
削除
2011/9/9 (金) 23:45:29
Mr.XRAY
▼ Saraさん
> いやそれが・・・ Releaseにしても変わらないんです・・・(^^;
> やっぱり、環境が変?(^^;
えっ!? それは何とも...
先の印刷のテストプログラムですが,以下の通りでした.
Windows XP(SP3) 32bit ビルド構成 :Debug サイズ : 8,763 KB
Windows XP(SP3) 32bit ビルド構成 :Release サイズ : 3,441 KB
usesにテストで追加したのが1つ余計なのがあったので削除したら.
Windows XP(SP3) 32bit ビルド構成 :Debug サイズ : 8,689 KB
Windows XP(SP3) 32bit ビルド構成 :Release サイズ : 3,402 KB
[5231]
Re5:Delphi XE2で作成されるEXEのサイズって・・・
返信
削除
2011/9/9 (金) 23:49:32
Sara
▼ Mr.XRAYさん
> > いやそれが・・・ Releaseにしても変わらないんです・・・(^^;
> > やっぱり、環境が変?(^^;
>
> えっ!? それは何とも...
>
> 先の印刷のテストプログラムですが,以下の通りでした.
>
> Windows XP(SP3) 32bit ビルド構成 :Debug サイズ : 8,763 KB
> Windows XP(SP3) 32bit ビルド構成 :Release サイズ : 3,441 KB
判明しました・・・(^^;
プロジェクトのオプションでRelease構成を選んでもだめなんですね・・・(^^;
プロジェクトマネージャー上でビルド構成をダブルクリックしないと・・・orz
[5232]
Re6:Delphi XE2で作成されるEXEのサイズって・・・
返信
削除
2011/9/10 (土) 00:01:34
Mr.XRAY
> プロジェクトのオプションでRelease構成を選んでもだめなんですね・・・(^^;
そうそう.太字になっているのが有効なんですね.
でもよかったです.人事ながら,何故か安心しました.
これで今夜はぐっすり眠れそうです(笑)
前は「デバッグ情報を含める,含めない」でしたから,設定は楽に
なったと思っています.
それにしても,EXEのサイズはかなり大きいですねぇ.
[5296]
Delphi XE2のEXEサイズを小さくする方法
返信
削除
2011/9/23 (金) 00:37:34
Mr.XRAY
タイトル通りなのですが、方法があります。
ただし、Win32とWin64別々、Debug,Release別のEXEは作成できていません。
できないのかも知れません。
もう少し調べてから記事にしたいと考えています。
さて、どこに掲載するかです。
今現在の結果では、フォーム1つだけのアプリで 1263 KBです。
[5300]
Re:Delphi XE2のEXEサイズを小さくする方法
返信
削除
2011/9/24 (土) 08:52:48
Mr.XRAY
以下の手順で出来ます.
Delphi XE2より前のような状態にします.
http://
mrxray.
on.
coocan.
jp/
Delphi/
Others/
DelphiXE
2_UnitSc
ope.
htm#
04
[5301]
Re2:Delphi XE2のEXEサイズを小さくする方法
返信
削除
2011/9/24 (土) 12:56:48
Sara
▼ Mr.XRAYさん
> 以下の手順で出来ます.
> Delphi XE2より前のような状態にします.
>
>
http://
mrxray.
on.
coocan.
jp/
Delphi/
Others/
DelphiXE
2_UnitSc
ope.
htm#
04
ん? この記述は、XE以前のフォルダー構造で作成できます的な話ですか?
記述のとおり、ユニットスコープを全ソースから削除してビルドしましたが、
サイズは小さくならない・・・(まだそういう話ではない?)
私の現在作成しているプロジェクトのDebugサイズは23MB・・・
Releaseで8MB弱・・・2010では6MBだったのに・・・(^^;
[5302]
Re3:Delphi XE2のEXEサイズを小さくする方法
返信
削除
2011/9/24 (土) 13:01:49
Mr.XRAY
▼ Saraさん
> ん? この記述は、XE以前のフォルダー構造で作成できます的な話ですか?
です.
プロジェクトのファイルを
*.dpr
*.dfm
*.pas
だけにして,*.dprを開くんですが.どうでしょう.
(unitファイルが1つだけの場合)
http://
mrxray.
on.
coocan.
jp/
Delphi/
Info/
OtherInf
o_Genera
l.
htm#
fig3
[5303]
Re4:Delphi XE2のEXEサイズを小さくする方法
返信
削除
2011/9/24 (土) 23:14:38
DEKO 〔
HomePage
〕
空フォームの EXE は、
1.古い Delphi で作ったアプリに含まれるアイコンを指定する。
2.プロジェクトソース (*.dpr) の先頭に以下を指定する。
{$RTTI EXPLICIT METHODS([]) FIELDS([]) PROPERTIES([])}
{$WEAKLINKRTTI ON}
で、それなりに小さくなると思います。
XE2 のアイコン (delphi_PROJECTICON.ico) は 300k 近くありますから。
[Delphi 2010 以降で RTTI を無効にする]
http://
ht-
deko.
minim.
ne.
jp/
tech040.
html#
tech072
追記:
Delphi 7 の標準アイコンで試してみたら、
32bit Windows デバッグ構成: 6,329,545
32bit Windows リリース構成: 1,124,864
でした。
[5304]
Re5:Delphi XE2のEXEサイズを小さくする方法
返信
削除
2011/9/24 (土) 23:34:08
Mr.XRAY
▼ DEKOさん,どうも.
> XE2 のアイコン (delphi_PROJECTICON.ico) は 300k 近くありますから。
でかいですよね.最初ビックリしました.
EXEのサイズがMBオーダーですから,100KBぐらいは...
> [Delphi 2010 以降で RTTI を無効にする]
>
http://
ht-
deko.
minim.
ne.
jp/
tech040.
html#
tech072
EXEのサイズを小さくするのが目的であれば,これですね.
追加記事の「ユニットスコープ...」は,正確にはEXEサイズを小さくする
のが目的ではなかったので,この発言のタイトルがよくなかったかも.
[5305]
Re6:Delphi XE2のEXEサイズを小さくする方法
返信
削除
2011/9/24 (土) 23:41:45
DEKO 〔
HomePage
〕
> この発言のタイトルがよくなかったかも.
(^^) 余談という事で。
余談ついでに...気を付けないと "デバッグとリリースでアイコンが違う"
という現象が発生しますよね > XE2。
# 22〜23日の雑談でやった "バージョン情報" の件と同じ理屈です。
[5306]
Re7:Delphi XE2のEXEサイズを小さくする方法
返信
削除
2011/9/25 (日) 00:05:23
Mr.XRAY
▼ DEKOさん
> 余談ついでに...気を付けないと "デバッグとリリースでアイコンが違う"
> という現象が発生しますよね > XE2。
実アプリでは独自のアイコン使用するので,実際には...
それにしても,「あやしいお部屋」(しつこい!!)のざつだんの9月分は
保存版みたいな感じになってしまってますね.
読むのも大変,ということは,書くのはもっと,ほんとにお疲れ様です.
お礼にもなりませんが,TWitterで池袋のパームクーヘンのお店紹介して
おきましたので,近くに来た時にお買い求めください.
(買って送れって? そうですね.そのうち)
FireMonkeyにちょっと心を動かされています.
ヘルプが整備されたら,またちょっとやってみようかな〜.ヘヘヘッ.
INCM/CMT
Cyclamen v3.82