Что делает std:: lockit?

Я проверил производительность проекта c++, и результаты мне не так понятны.
std::_lockit::int() имеет над 20% из исключительных образцов. Что он делает и как избежать его чрезмерного использования? У меня есть много вещей, созданных с std::vector, значит, есть надежда, что они связаны.

1 ответов


_Lockit обычно используется в реализации Microsoft STL для отладки итераторов. В производственных средах это может быть причиной значительных узких мест производительности при итерации по контейнерам с большим количеством элементов.

отладочные итераторы можно отключить, определив макросы _HAS_ITERATOR_DEBUGGING и _SECURE_SCL as 0 в коде или свойствах проекта Visual Studio.

по теме: ненужная блокировка в STL? (Visual C++ Express)