2013-05-27 1 views
11

私はC++プロジェクトのパフォーマンスをチェックしましたが、結果はあまり明確ではありません。
std::_lockit::int()には、20%を超える排他的サンプルがあります。それは何をし、どうやってそれを過度に使うのを避けますか? std::vectorで作成されたものがたくさんあるので、これらが接続されていることを期待しています。std :: _ lockitは何をしますか?

+0

すべての最適化を有効にしてデバッグを無効にしましたか? –

+0

はいビルドに/ Oxを使用します。 –

+3

さて、それはマイクロソフト固有の内部的なものです...コンパイラのマニュアルを参照する方が良いかもしれません。これは標準のC++とは関係ありません。 –

答えて

9

_Lockitは、イテレータをデバッグするためのMicrosoftのSTL実装でよく使用されます。実稼働環境では、多数の要素を持つコンテナを反復処理する際に、パフォーマンス上のボトルネックが発生する可能性があります。

_HAS_ITERATOR_DEBUGGING_SECURE_SCLをコードまたはVisual Studioプロジェクトのプロパティに0として定義すると、イテレータのデバッグを無効にすることができます。

関連:Unnecessary locking in STL? (Visual C++ Express)

関連する問題