VC++2010でコンパイルを高速化する方法(並列ビルドの有効化)

アバター
MNS
記事: 35
登録日時: 15年前

VC++2010でコンパイルを高速化する方法(並列ビルドの有効化)

投稿記事 by MNS » 14年前

ブログ「TECHNOTRONIC FLIGHT II」より。
http://blog.goo.ne.jp/kinoshita_naoki/e ... cf86669792

まるまる記事をコピーしてくるのも心許ないので、↑のサイトを参照してください。

並列ビルドなので、マルチコアCPUを搭載してないとあまり効果はないのかもしれませんが、
私の"Core 2 Quad Q9300"では驚くほど速くなりました。

割とご存知の方もいらっしゃるのかもしれませんが、
ご存じない方のため、一応。では。

アバター
kimuchi
記事: 163
登録日時: 14年前

Re: VC++2010でコンパイルを高速化する方法(並列ビルドの有効化)

投稿記事 by kimuchi » 14年前

全く存じておりませんでした。
有益な情報をありがとうございます。

アバター
h2so5
副管理人
記事: 2212
登録日時: 14年前

Re: VC++2010でコンパイルを高速化する方法(並列ビルドの有効化)

投稿記事 by h2so5 » 14年前

早速試してみました。大雑把な計測ですが、

並列ビルド無効→28秒
並列ビルド有効→24秒

2コアですが、多少は速いのかな(-_-;)

アバター
MNS
記事: 35
登録日時: 15年前

Re: VC++2010でコンパイルを高速化する方法(並列ビルドの有効化)

投稿記事 by MNS » 14年前

>kimuchiさん
いえいえ。元ブログの方に感謝ですね。

>h2so5さん
ふむ、その数値的にはあまり効果はみられないような・・・

私の今作ってるゲームですと、
並列ビルド無効 → 39秒
並列ビルド有効 → 19秒
で、ほとんど2倍速です。
(ビルドログより)

むむう、4コアじゃないと効果は薄い・・?

ああ
記事: 49
登録日時: 14年前

Re: VC++2010でコンパイルを高速化する方法(並列ビルドの有効化)

投稿記事 by ああ » 14年前

これは凄いですね!

並列ビルド無効 → 21秒
並列ビルド有効 → 5秒

と4倍速という効果が得られました!!
こちらは8コアでの結果です。

アバター
御津凪
管理人
記事: 200
登録日時: 15年前

Re: VC++2010でコンパイルを高速化する方法(並列ビルドの有効化)

投稿記事 by 御津凪 » 14年前

/MP オプションにおけるビルドは、そのプロジェクト内にあるソースファイルの数があればある程高速化が見込めます(スレッドごとに1ソースファイルをコンパイルする為)が、
複数プロジェクトをビルドする時に(依存関係によりますが)それぞれのプロジェクトのビルドが複数スレッドにより同時進行します。

そのような状態であれば、既に同時プロジェクトビルドによってCPUの個数分進行していた場合、余り変化が無いと思われます。
※もちろんあるプロジェクトが先に完了してCPUが空いたら、その後のプロジェクトのビルドが /MP オプションによって高速化すると思います。

► スポイラーを表示
追記:
私の所で開発中のプロジェクトでは、

シングルコンパイル(/MP無)、シングル(1並列)プロジェクトビルド: 約53秒
シングルコンパイル(/MP無)、マルチ(4並列)プロジェクトビルド: 約47秒
マルチコンパイル(/MP有)、マルチ(4並列)プロジェクトビルド: 約25秒

でした。参考にどうぞ。

※CPUは4コア、ソリューションに登録されているプロジェクト数は10個(内、 周囲機能→本体ライブラリ→そのテスト用 の順に依存関係)です。
最後に編集したユーザー 御津凪 on 2011年3月17日(木) 00:37 [ 編集 1 回目 ]
理由: 追記しました