Crystal Dew World > 特集記事 > VisualC++ 7.1 の衝撃

VisualC++ 7.1 の衝撃 [ 2003/08/14 ]

VisualStudio .NET 2003 の VisualC++ 7.1 はついに Pentium 4 最適化機能が実装されました。今回は新コンパイラの性能を CrystalMark08 を使って検証しています。(ベンチマークソフトを使ってベンチマーク!?)

VC7.1 で新たにサポートされた G7 オプションは Pentium 4 および Athlon に最適化されるそうで、ベンチマーク部分を一手に引き受ける CrystalMark08.dll に適用したところ一部で非常に大きな効果がありました。また、ファイルサイズも今回は小さくなっております。( 69632 -> 54272 )

 

CrystalForce 400K
(2.4GHz 動作)

CrystalForce500K
ぽこにゃん7号
 
VC6 (G5)
VC7.1 (G7)
VC6(G5)
VC7.1 (G7)
VC6(G5)
VC7.1 (G7)
ALU
8033
8978
5071
5296
2030
2090
FPU
8031
11511
5930
18027
1998
5772
Fibonacci
1114
1138
1107
1057
526
513
Napierian
3074
3151
1309
1309
502
498
Eratosthenes
2482
2605
1296
1303
499
497
QuickSort
1363
2084
1359
1627
503
582
MikoFPU
3637
3628
1459
1463
500
499
RandMeanSS
1697
2524
1952
13246
493
3939
FFT
1830
1890
1410
1420
503
489
Mandelbrot
867
3469
1109
1898
502
845

CrystalForce 400K (Pentium 4 HT)

QuickSort / RandMeanSS / Mandelbrot において劇的に性能が向上していることがわかります。以前、NetBurst は予測困難な条件分岐に弱い(パイプラインの段数が多いため) ということが頻繁に取り上げられており、私も Mandelbrot のように条件分岐のオンパレードな処理は苦手と考えていたのですが、どうやらコンパイラの改良で改善できる問題のようですね。

CrystalForce 500K (Moble Athlon XP)

RandMeanSS で神がかり的なスコアアップを果たしています。思わず何度も試してみましたが、結果は変わらず。

ぽこにゃん7号 (Mobile Pentium III)

CrystalForce 500K 同様 RandomMeanSS で脅威の性能アップを実現!!

総評

ここまでコンパイラで違うものなのか!! というのが正直な感想です。逆に言うとソースレベルの最適化が足りない!? また、Pentium 4 および Athlon に最適化ということになっている G7 オプションですが、Pentium III でも大きな効果があるようですね。

VisualC++ 7.1 マイナーバージョンアップかと思いきやこいつはとんでもない魔物のようです。数値計算を Windows でやっている方は必須のバージョンアップではないでしょうか!!

CrystalMark Core System は 95/NT4 で動作させたいので、VC6のままですが、ベンチマーク部分は MFC を使わないため VC7.1 に移行できそうです。