exeファイルの大きさは何で決まるんでしょうか??


AS  2018-09-01 12:08:28  No: 49468

早速次の質問で、すみません。

私の68個のUNITを使ったプログラムは7607KBのサイズですが、
ボタンを25個配置した電卓のプログラムは10507KBです。
form1個だけをコンパイルすると、10531KBです。

なぜ、こうなるのですか??

よろしくお願いします。


AS  2018-09-01 12:27:41  No: 49469

仕様パソコンはwin10で、delphiはXE5です。


igy  2018-09-01 19:51:28  No: 49470

ちなみに、( アプリケーションの開発、デバッグ、変更を行っていれば、ですが)Release 構成を使用してビルドするのでは、だめですか?

ビルド構成の概要
http://docwiki.embarcadero.com/RADStudio/Tokyo/ja/%E3%83%93%E3%83%AB%E3%83%89%E6%A7%8B%E6%88%90%E3%81%AE%E6%A6%82%E8%A6%81


igy  2018-09-01 20:04:16  No: 49471

訂正です。

×:アプリケーションの開発、デバッグ、変更を行っていれば
○:アプリケーションの開発、デバッグ、変更を行っていなければ


AS  2018-09-02 08:31:20  No: 49472

igyさん、ありがとうございます。

読んでみましたが、もう年なので、頭に入りません。

また、よろしくお願いします。


AS  2018-09-06 05:54:32  No: 49473

なんか、簡単なプログラムほど、サイズが大きいような感じがしますが、
私の最小のプログラムは1989KBです。
これは、ボタンが2個、editが7個、Labelが7個の簡単なプログラムです。
ボタン25個の電卓プログラムの10507KBとの違いに戸惑います。

理由が分かる人がいたら、よろしくお願いします。


AS  2018-09-06 06:12:21  No: 49474

すみません、1989KBのプログラムは、2012年にコンパイルしたものでした。
64BITのプログラムにして、再コンパイルすると、3150KBになりました。

よろしくお願いします。


igy  2018-09-06 09:16:54  No: 49475

> 読んでみましたが、もう年なので、頭に入りません。 

docwiki で書かれているものが、判りにくい場合、
検索して、(同様のことが書いてある)別のサイトなどを、探してみるのもよいかもしれませんね。


ウォレス  2018-09-06 20:12:09  No: 49476

横から失礼します。

EXEファイルはバージョンが進む毎に徐々に大きくなってますよね。
Delphi10 以降はフォームだけのプログラムでも、VCLで10MB強あります。

理屈はよくわからいのですが、いったんプロジェクトを閉じてから、
*.dproj  を削除して、  dprを開いてビルド(このときdprojは再作成されるみたい)すると、Delphi10以降で 3M弱に減ります。

※そんなんしたらあかんよ!って言われるかも。。でも不具合起きたことはないです。


AS  2018-09-08 07:52:00  No: 49477

igyさん、ウォレスさん、ありがとうございます。

試してみます。

確かにorojectは2つありましたよね。
dprでは小さくなるのですか?

試してみようとしましたが、XE5とdelphi10を入れているので、
なぜか、dprojとdprの拡張子が見えなくなっています。

10の入っていないPCがあるかどうか調べて、あれば試してみます。

ありがとうございます。


AS  2018-09-08 12:18:22  No: 49478

Dprojを消して、dprでformだけをコンパイルすると、2050KBになりました。

ありがとうございました。


AAA  2018-09-08 19:19:55  No: 49479

>exeファイルの大きさは何で決まるんでしょうか??

基本プログラムの総サイズ、デバック情報とか含むを巨大化する

総サイズとは Unit1 Unit2 とかのテキストだけなく
uses にあるユニット全て 
uses にあるだけで使用していなくても
コンパイル対象(ファイルサイズに影響あり)になる

同じコンポーネントだけなら1個でも100個でもファイルサイズは
大差でない

>*.dproj  を削除して、  dprを開いてビルド(このときdprojは再作成されるみたい)すると、Delphi10以降で 3M弱に減ります。 

プロジェクト - オプション
DELPHIコンパイラ - リンク - デバッグ情報
FALSE になってサイズが減る


AS  2018-09-11 01:58:49  No: 49480

AAAさん、ありがとうございました。

USESについては、調べてみます。

一番聞きたいのは、
「簡単なプログラムほどサイズが大きくなってるようなのはなぜか?」
ということなんですが、分かるようでしたら教えてください。

よろしくお願いします。


igy  2018-09-11 03:48:16  No: 49481

>「簡単なプログラムほどサイズが大きくなってるようなのはなぜか?」 

ちなみに、新規プロジェクト(既存のソースは一切使わない)にて、
・簡単なプログラム
・簡単じゃないプログラム
をコンパイル・ビルドしてみた場合でも、簡単なプログラムのほうがサイズが大きいですか?


AS  2018-09-11 17:06:42  No: 49482

igyさん、ありがとうございます。

いいところに目を付けられましたね。
実際、formだけとedit3個とボタン3個を配置したプログラムを比較すると、
後者のほうが2KB多くなりましたよ。

igyさん作のプログラムではどうなっていますか??


igy  2018-09-11 17:37:14  No: 49483

> 実際、formだけとedit3個とボタン3個を配置したプログラムを比較すると、 
> 後者のほうが2KB多くなりましたよ。 

ということは、

>「簡単なプログラムほどサイズが大きくなってるようなのはなぜか?」 

の回答としては、
  「簡単なプログラムほどサイズが大きくなってる」わけではない。
というのが、回答になりますね。

> igyさん作のプログラムではどうなっていますか?? 

コードの内容やビルド構成などに、よりますね・・・


IS  2018-09-12 06:52:35  No: 49484

> 読んでみましたが、もう年なので、頭に入りません。 

どんな説明しようが、
どんな説明のURLを提示しようが

上記の回答がある以上、説明するのは無駄なので、

「なるものはなる」で、我慢してください。

そうでなければ、年のせいにしないで、読んで理解してください。
最低限、理解する努力ぐらいしてください。

回答者が善意で行う回答に対し、あまりにも無責任極まりないです。


AS  2018-09-13 14:46:43  No: 49485

igy、ありがとうございます。

ISさん、すみません。
ちゃんと読んで努力しても分からないのですが??

ISさんに怒られちゃったし、明確な回答ももらえないようなので、
なるものはなるで我慢します。

長年、ここで質問してきましたが、
回答がもらえなかったのは2回目になりますね。


通りすがり  2018-09-13 15:54:57  No: 49486

回答されてんじゃん…理解できないことと回答されてないことは違うことですよね?
それでも、というなら、頭に入らない、じゃなくて、これがわからない、と聞くべきです。


igy  2018-09-13 16:14:05  No: 49487

> 一番聞きたいのは、 
> 「簡単なプログラムほどサイズが大きくなってるようなのはなぜか?」 

の質問に、

>  「簡単なプログラムほどサイズが大きくなってる」わけではない。 

と明確に回答しているのに、

> 明確な回答ももらえない

> 長年、ここで質問してきましたが、 
> 回答がもらえなかったのは2回目になりますね。 

と書かれると、かなりがっがりしますね。


igy  2018-09-13 17:30:56  No: 49488

UNITを追加したら、読み取り違反のエラーが出るようになったのですが??
https://www.petitmonte.com/bbs/answers?question_id=8869
では、
「範囲チェック」の件、みなさん書いているのに、AS さんが「難しいことを飛ばしてしまった」結果、
長引いたみたいで、

今回のは、ビルド構成に関して、「頭に入らない」・「分からない」と言い続けることで、
最終的には、「回答がもらえなかった」ということになるのかもしれませんね。


Mr.XRAY  2018-09-14 04:19:16  No: 49489

既に igy さんが回答となることを導きだして書いていますが,

EXE ファイルのサイズはそのプログラムによって違います.
Delphi で作成するプログラムはプロジェクトの構成と内容で違います.
フォームやユニット,コンポーネント (コントロール) やリソース等,ビルド構成,
ターゲットプラットフォームもプロジェクトの構成と内容の一部です.
このことはほとんどの方が理解していることです.
IDE での操作ですから当たり前というか当然と言えば当然ですが.
説明するまでもありませんが,もちろん Delphi のバージョンによっても異なります.

それ以外,特別に説明するような内容はありません.
通常は,上記のことを理解しているという前提で話をすることになります.
これらを無視したテスト結果を提示しても何の意味もありません.
(昔から書いていることですが)

更に,捨て台詞とも受け取れる内容を書き込んだりする反応は,
人様に何かを教えて頂くという態度とは到底思えません.
それこそ「慇懃無礼」と言えます.

配列の範囲外操作もそうですが,
実際に EXE のサイズを調べたりすることにほとんど意味はありませんが,
以下のリンクの記事は,私が行ったテスト結果です.
(最初の記事は delphi exe サイズ」でググるとヒットします)

私のサイトの記事は「難解」とよく言われていますので
『読んでみましたが、もう年なので、頭に入りません。 』
という AS さんには無理だと思います.しかし,この掲示板は多くの方が利用しています.
検索でこのスレッドに来た方々への参考としてリンクを貼っておくことにします.

http://mrxray.on.coocan.jp/Delphi/plSamples/005_FormInPackage.htm#05
http://mrxray.on.coocan.jp/Delphi/Others/ArrayRangeCheck.htm
http://mrxray.on.coocan.jp/Delphi/Others/013.htm

# 記事中にビルド構成という用語を使用しています.
# その用語の説明に,igy さんが示したのと同じ記事へリンクを貼っています.
# したがって『ちゃんと読んで努力しても分からないのですが?? 』という AS さんには無理です.
# このレスの文章も『年なので,頭に入らない』かも知れませんが.


Mr.XRAY  2018-09-14 09:43:11  No: 49490

>人様に何かを教えて頂くという態度とは到底思えません.

年を主張するであれば,
掲示板でのマナー違反等をいさめる立場に立ってもおかしくはないと思います.
逆にいさめられる立場になっては情けないです.


Mr.XRAY  2018-09-15 19:12:30  No: 49491

プロジェクトの構成と設定内容で EXE のサイズは決まるわけです.

>通常は,上記のことを理解しているという前提で話をすることになります. 
>これらを無視したテスト結果を提示しても何の意味もありません.

例えば以下もそうです.

>すみません、1989KBのプログラムは、2012年にコンパイルしたものでした。 
>64BITのプログラムにして、再コンパイルすると、3150KBになりました。 

EXE のサイズが,コンパイルした年で決まるような文章になっています.
新発見です.


Mr.XRAY  2018-10-02 02:46:23  No: 49492

参考までに.

[ 読んでも分かりません ]
http://mrxray.on.coocan.jp/Delphi/Others/ReadText.htm


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加