Сборки отладки на Visual C ++, как правило, очень медленные. Для этого есть несколько причин:
- самое очевидное, что код не оптимизирован
- функции выделения памяти в библиотеке отладки CRT выполняют дополнительные проверки для обнаружения повреждения кучи и других проблем, поэтому они работают медленнее.
- многие функции STL выполняют дополнительные проверки и утверждения в отладочных сборках, которые очень медленно используют контейнеры STL
Я успешно отлаживал приложения, которые интенсивно используют память и STL, используя следующий метод:
- использовать сборку релиза для отладки (да, это отлично работает!).
- настроить ваши сборки выпуска на включение символов отладки, это должно заставить компилятор записать файл .pdb, который использует отладчик
- только для файлов, которые вы намерены отлаживать, установите компилятор без оптимизации.
Обратите внимание, что вышеприведенное прекрасно работает для устранения проблем в вашей собственной логике, но это может быть не самой лучшей идеей, если вы отлаживаете повреждение памяти или другие проблемы, так как вы устраняете весь дополнительный код отладки, который CRT предоставляет для них типы вопросов.
Надеюсь, это поможет!