Pentium4 3.6GHzよりも、コンパイル時間が殆ど変わりませんでした。
ひさびさのPC更新だったので、期待していたのに、がっかりです・・・(T_T)
こんなもんでしょうか?
大雑把な話になりますが、マルチコアの Core i7 がシングルコアの Pentium4 に比べて高速に動作するのは、アプリケーションがマルチスレッドに対応している場合です。
コンパイラの製品名が分からないと何とも言えませんが、そのコンパイラ自体がマルチスレッド処理できるものでないと、Core i7の真価は発揮できません。
コンパイラの仕様をご確認ください。
「コンパイル時間」ということですので、プログラム自体の動作ではなく、プログラムをコンパイルする時間ということでよろしいでしょうか?
コンパイル作業では、多くのファイルの書き出し/読み込みを伴うため、CPUの速度よりも、ファイル書き込み先(HDDなど)の速度が制限要因になります。
SSDやRAM Diskなど、書き込み/読み込みの速い装置を使えば、速くなると思います。
>プログラムをコンパイルする時間ということでよろしいでしょうか
はい。そうです。
>SSDやRAM Diskなど、書き込み/読み込みの速い装置を使えば、速くなると思います。
本当ですか!?!? わーい。
一応、SSDを注文して今日 届くので試してみようと思います。
うまくいったら喜びます。
ただ、HDDランプがそんなに忙しそうにしていなかったので 改善するか気がかりですが・・・。
自分でmakefileを変更しない場合にはHDDやCPUを増強した上で、
それを活かせるコンパイルオプションを指定する必要があります。
多コアを活かすのであればditccでコンパイルしてみてください
http://d.hatena.ne.jp/big-eyed-hamster/20090908/1252411582
並列コンパイルをしてくれます。
並列化オプションは並列実行するバイナリを生成する物で
コンパイル自体の並列化とは異なります。
また、メモリを活かして-pipeオプションも効果はあるかもしれません。
ただし、コンパイル時間はCPUよりもHDD、それよりもプログラムの書き方や
makefileの書き方に大きく影響を受けます。
既にコンパイルして、未変更の部分をコンパイルしないですむようにするのが基本です。
よく変更する部分だけ別モジュールにして
その他の部分をコンパイルしないなどの工夫が必要となります。
なるほど。最近のCPUは、マルチコアにする事で高速化を狙っているのですね。
ビルド環境はgccなので、並列化オプションで試してみます。
ありがとうございました。
以降、他の方で、アドバイスがあれば是非。