前のエントリのコメントで教えてもらった_MSC_FULL_VERを調べているうちに、
Visual C++ Team Blogのエントリを見つけました。
http://blogs.msdn.com/vcblog/archive/2008/08/11/tr1-fixes-in-vc9-sp1.aspx
これによると、どうも、hash_map, hash_setがSP1(正式版)で改善されたらしい。
早速ベンチマーク。コードは2008/06/26と同じものを使いました。
結果。
VC++2008+FP, set -> 19秒台/2.0~2.1秒台
VC++2008+FP, unordered_set -> 12~14秒台/1.2~1.3秒台
VC++2008 SP1, set -> 19秒台/2.0~2.1秒台
VC++2008 SP1, unordered_set -> 8~9秒台/1.6~1.7秒台
と、だいぶ改善されてました。SP1になって、g++ 4.2と比較してもほとんどそん色ないくらいになりました。
上述のブログをさらに読むと、地味なバグフィックスも多々。
個人的には、
・regexのパフォーマンス改善(多くの場合Boost 1.35.0のRegexのより速い)
・TR1で導入されたコンテナでO(1)のswapが使えるように修正
というのが目を引きました。
Visual C++ Team Blogのエントリを見つけました。
http://blogs.msdn.com/vcblog/archive/2008/08/11/tr1-fixes-in-vc9-sp1.aspx
これによると、どうも、hash_map, hash_setがSP1(正式版)で改善されたらしい。
早速ベンチマーク。コードは2008/06/26と同じものを使いました。
結果。
VC++2008+FP, set -> 19秒台/2.0~2.1秒台
VC++2008+FP, unordered_set -> 12~14秒台/1.2~1.3秒台
VC++2008 SP1, set -> 19秒台/2.0~2.1秒台
VC++2008 SP1, unordered_set -> 8~9秒台/1.6~1.7秒台
と、だいぶ改善されてました。SP1になって、g++ 4.2と比較してもほとんどそん色ないくらいになりました。
上述のブログをさらに読むと、地味なバグフィックスも多々。
個人的には、
・regexのパフォーマンス改善(多くの場合Boost 1.35.0のRegexのより速い)
・TR1で導入されたコンテナでO(1)のswapが使えるように修正
というのが目を引きました。