先日のエントリで書いた Visual Studio 2008 の MP オプションを
かるく(いいかげんに)試してみました。
Visual Studio 2008
取りあえずコマンドラインから。

使用した環境
・Visual Studio 2008 Professional (VC9.0)
・Vista x64、x64(amd64) 版コンパイラ cl
・Pentium4 3.6GHz ×2CPU × HT = 4thread RAM2G
・41本の cpp ソースコンパイル

コマンドラインオプション
 -W3 -WX -O2 -Oi -Ot -Oy -Ob2 -GA -GF -Gy -DWIN32
 -D_WINDOWS -D_MBCS -EHsc -fp:except-
 -fp:fast -Zi -TP -c

-c なので obj 生成のみ。
何度も試したのでファイルはほぼキャッシュされている状態。

結果 (コンパイル時間の比較)

VC9 /MP1   47sec    (28%)  (/MP無指定と同じ)
VC9 /MP2   30sec    (55%)
VC9 /MP4   21sec    (100%)

後ろの括弧の中はパフォーマンスモニタの CPU 使用率(目安) です。
かなり効果ありました。

でももっと驚いたのは

VC8 /MP1   42sec
VC8 /MP4   19sec

あれ、VC8 (VS2005) でも /MP が使えている。
テストしててエラーが出ないからおかしいなとは思ったのですが。
マニュアルに無いけど隠し機能でしょうか。知らなかっただけかも。

同条件で Core2 Duo の場合
・Visual Studio 2008 Professional (VC9.0)
・Vista x64、x64(amd64) 版コンパイラ cl
・Core2 Duo E6600 2.4GHz RAM4G

VC9 /MP1   29sec
VC9 /MP2   17sec