shared_ptrの構築・破棄におけるパフォーマンス測定【やってみた】


測定は、Windows XP/Core 2 DuoのPCで行った。
shared_ptrに付け加え、自動変数・new/delete・auto_ptr・CAutoPtr・vector<shared_ptr>・CAutoPtrArrayについてCStringのオブジェクトの構築・破棄に対して調査した。

自動変数として使用する場合と比べ、shared_ptrの構築・破棄に10倍以上のクロック数がかかっている。また、CAutoPtrやauto_ptrに比べ2.3倍のクロック数がかかっていることがわかる。

複数のオブジェクトの構築・破棄
5つのオブジェクトを構築しそれをスマートポインタのリストに追加するようなコードの測定。
CAutoPtrArrayと比べvetor<shared_ptr>の構築・破棄に約3倍のクロック数がかかていることがわかる。

結果としては、何度も構築・破棄するようなオブジェクトは自動変数で割り当てるのがもっとも速度が早いことがわかる。
また、一度しか構築しないものについてはそれぞれクロック数に差はあるものの全般的に大したクロック数ではないので、好きなものを選択するのがよいことがわかる。

http://soundengine.jp/wordpress/tips/try/744/