2015年2月4日水曜日

[Visual Studio] インクルードガード実装毎のベンチマーク

[C, C++] インクルードガード実装毎のベンチマーク - Qiita

こちらで紹介されているページ(http://tinodidriksen.com/2011/08/31/cpp-include-speed/)で、MSVC 2010 の結果の Ifndef only が遅かったので、手元の Visual Studio で比べてみました。

計測方法
http://tinodidriksen.com/2011/08/31/cpp-include-speed/
こちらで公開されているソースコードを使用。
各インクルードガード実装ごとに、下記のように10回繰り返した時間を計測。

for i in `seq 1 10`
do
    cl.exe main.cpp /O2
done

結果
include guard 2015 CTP 52013 2012 2010
Pragma + ifndef13.36 14.8025.1724.19
Ifndef + pragma13.10 14.7624.7624.71
Pragma only 12.88 14.4424.7724.20
Ifndef only 13.09 14.7329.3729.78

Visual Studio 2010/2012 では、インクルードガードマクロのみ遅い傾向が確かに見られましたが、Visual Stduio 2013/2015 ではそのような傾向はありませんでした。
というか、2013 以降でかなりビルド速度が速くなってました。

まぁ、マクロか pragma once かはあまり気にしなくていいのかなと思いました。

0 件のコメント:

コメントを投稿