こちらで紹介されているページ(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 5 | 2013 | 2012 | 2010 |
---|---|---|---|---|
Pragma + ifndef | 13.36 | 14.80 | 25.17 | 24.19 |
Ifndef + pragma | 13.10 | 14.76 | 24.76 | 24.71 |
Pragma only | 12.88 | 14.44 | 24.77 | 24.20 |
Ifndef only | 13.09 | 14.73 | 29.37 | 29.78 |
Visual Studio 2010/2012 では、インクルードガードマクロのみ遅い傾向が確かに見られましたが、Visual Stduio 2013/2015 ではそのような傾向はありませんでした。
というか、2013 以降でかなりビルド速度が速くなってました。
まぁ、マクロか pragma once かはあまり気にしなくていいのかなと思いました。
0 件のコメント:
コメントを投稿