问题 什么std :: _ lockit呢?


我检查了c ++项目的性能,结果对我来说不太清楚。
std::_lockit::int() 拥有超过20%的独家样品。它做了什么以及如何避免过度使用它?我创造了很多东西 std::vector,所以希望这些是相互联系的。


2429
2018-05-27 09:29


起源

您是否启用了所有优化并禁用了调试? - Kerrek SB
是的我使用/ Ox来构建。 - Pavel Oganesyan
嗯,这是微软特有的内部事情......可能更好地查阅编译器手册。它与标准C ++无关。 - Kerrek SB
us.generation-nt.com/answer/... - vpram86


答案:


_Lockit通常用于Microsoft的STL实现中,用于调试迭代器。在生产环境中,这些可能是导致重大性能瓶颈的原因,同时迭代具有大量元素的容器。

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

有关: STL不必要的锁定? (Visual C ++ Express)


9
2017-11-28 02:38