ページ 1 / 1
アプリケーションのサイズについて
Posted: 2008年12月12日(金) 13:19
by kazuoni
お邪魔します。
題名の通りアプリケーションのサイズについてです。
自分はC言語+DXライブラリで制作を進めているのですが、
画像、サウンドは何も用いていません。
総行数約1000行です。
しかし、アプリケーションのサイズは約2.8MBもあります。
(自分が今公開しているDOT_getterなんですが。。)
以前バグさんが紹介されたテトリスでも約1.0MBです
(↓過去ログ)
http://www.play21.jp/board/formz.cgi?ac ... &rln=24882
これはなぜでしょうか?
確保する変数が多すぎるのでしょうか?
C言語とC++の違いでしょうか?
少しでも軽くはできないのでしょうか?
よろしくお願いします。
Re:アプリケーションのサイズについて
Posted: 2008年12月12日(金) 13:34
by 御津凪
・デバッグ版はデバッグ情報を実行ファイルに入れる。
・プロジェクトのプロパティで、最適化に関する項目(ここではリリース版)に関係。
・DX ライブラリは マルチスレッド DLL (/MTd)で作成したライブラリで無いので、
ランタイムデータが実行プログラムに組み込まれる。
(強制的に /MTd でリンクしてしまえば小さくなるかも)
・C++ は例外関係及び型情報を持つようにコンパイルすると大きくなる。
等が上げられます。
特に、デバッグ版とリリース版の実行ファイルのサイズは大きく違います。
ランタイムライブラリを実行ファイルにリンクする方法では、使用している
ランタイムライブラリの数によって比例的に増加します。
ただし、ランタイム DLL として作成した実行ファイルは、
ランタイムライブラリのインストールをしていないと起動できません。
Re:アプリケーションのサイズについて
Posted: 2008年12月12日(金) 13:34
by Dixq (管理人)
VisualStudioですか?
ReleaseではなくDebugにしていませんか?
もしVisualStudioでしたら、メニューバー付近に「Debug」と表示されていると思うので「Release」に変更して下さい。
もし表示されていない時は「ビルド」>「構成マネージャー」からも変更できます。
自動変数の表示など、デバッグできなくなる代わりに、実行ファイルが軽くなります。実行速度も変わるようなので、配布時にはReleaseにするといいです。
後、Releaseにしたままでデバッグすると、自動変数に変な値が表示されるので、デバッグする時はDebugに戻してください。
Re:アプリケーションのサイズについて
Posted: 2008年12月12日(金) 20:13
by kazuoni
御津凪さん、管理人さんご回答ありがとうございます^^
お二方のおっしゃる通りでした。。
今まで全く気にしたことがなかったので
デバッグ・リリースの全く違いを理解できていませんでした。
こんな性能のいいvisual C++がまだ使いこなせてません^^;
でもDebug機能はすごいですね。
学校で使ってるLinuxはこの機能がなく、
エラーと言えば「セグメンテーション違反」ですね^^;
最初のころはポインタで躓いていたので、
このエラー文字でどれだけ苦しんだことか・・・w
すみません。。話がそれました。
本当にありがとうございました。
またよろしくお願いします。