読者です 読者をやめる 読者になる 読者になる

やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

g++のコンパイル時間とファイルサイズ

コンパイル時間とファイルサイズ

前回の続き。コンパイルオプションによって、コンパイル時間とファイルサイズが変化することを確認した。

気になること

前回のコードをコンパイルしているときに気になったことがあった。

  • コンパイル時間が長い(15秒~1分10秒)
  • exeのファイルサイズが大きい(60KB~130KB)
  • exeの初回実行時間が長い(10秒)

このうち、コンパイル時間とファイルサイズは、コンパイルオプションで変動する。

make.exe

mingw32-make.exe コンパイル時間 ファイルサイズ オプション
4.6.2 1分35秒 130KB g++ -Wall -std=c++11 -o program.exe program.cc `pkg-config gtkmm-3.0 --cflags --libs` -mwindows
5.3.0 1分10秒 130KB g++ -Wall -std=c++11 -o program.exe program.cc `pkg-config gtkmm-3.0 --cflags --libs` -mwindows

最初、間違ってMinGW4.6.2のmingw32-make.exeを使っていた。 5.3.0にするとコンパイル時間が早くなった。

コンパイルオプション

-s-O3のオプションについて以下のパターンを試してみた。

パターン コンパイル時間 ファイルサイズ
なし 1分10秒 130KB
-s -O3 45秒 60KB
-s 20秒 64KB
-O3 15秒 111KB

完成版としては-s -O3が理想か。実行速度の最適化をしているしファイルサイズも最小だから。 でも、コンパイル時間は長い。

実行時間の最適化はどうやって計測すればいいのかわからない。 どのみち、こんな小さいコードでは大差ないだろうけど。

所感

コンパイルは2秒以内に終わってほしいくらい。VC++もだけどC++C#に比べて実行までの時間が長い。