std::_lockit是做什么的?

11

我检查了C++项目的性能,结果对我来说不是很清晰。
std::_lockit::int()占据了超过20%的独占样本。它是什么以及如何避免过度使用它? 我创建了许多使用std::vector的东西,所以希望这些元素相关联。


你启用了所有优化并禁用了调试吗? - Kerrek SB
是的,我使用/Ox进行构建。 - Pavel Oganesyan
3
好的,这是一个微软内部特定的事情...最好查阅编译器手册。这与标准C++无关。 - Kerrek SB
http://us.generation-nt.com/answer/multithreaded-dll-what-going-std-lockit-help-11610292.html#r - vpram86
1个回答

10

_Lockit经常被用于微软STL的实现中来调试迭代器。在生产环境中,当迭代大量元素的容器时,这些迭代器可能会导致显著的性能瓶颈。

可以通过在您的代码或Visual Studio项目属性中定义宏_HAS_ITERATOR_DEBUGGING_SECURE_SCL0来禁用调试迭代器。

相关:STL中不必要的加锁?(Visual C++ Express)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接