What std::_lockit does?

2019-01-27 15:48发布

问题:

I checked performance of c++ project and results are not so clear to me.
std::_lockit::int() has over 20% of exclusive samples. What does it do and how do I avoid overusing it? I have a lot of things created with std::vector, so there is a hope that these are connected.

回答1:

_Lockit is commonly used in Microsoft's implementation of the STL for debugging iterators. In production environments these can be the cause of significant performance bottlenecks while iterating over containers with a large number of elements.

Debugging iterators can be disabled by defining the macros _HAS_ITERATOR_DEBUGGING and _SECURE_SCL as 0 in your code, or Visual Studio project properties.

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