Visual C ++: разница между Начать с / без отладки в режиме выпуска

https://gist.github.com/3118596

Существует реализация для JavaScript. Он имеет функции для получения k-комбинаций и всех комбинаций массива любых объектов. Примеры:

k_combinations([1,2,3], 2)
-> [[1,2], [1,3], [2,3]]

combinations([1,2,3])
-> [[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3]]

16
задан Hulk1991 24 July 2013 в 07:41
поделиться

1 ответ

«Начать без отладки» просто сообщает Windows, что приложение запускается в обычном режиме.

«Начать с отладки» запускает отладчик VS и запускает приложение в отладчике.

На самом деле это не имеет ничего общего с настройками сборки отладки / выпуска.

Когда вы создаете конфигурацию «отладки» по умолчанию для своего приложения, у вас будут следующие основные отличия от сборки выпуска:

  • Созданный код не будет оптимизирован, поэтому его легче отлаживать, потому что он более тщательно соответствует вашему источнику
  • Компилятор и компоновщик выведут файл .PDB, содержащий много дополнительной информации, чтобы помочь отладчику - наличие или отсутствие этой информации не влияет на производительность кода, только на простоту отладки.
  • Условные макросы, такие как ASSERT и VERIFY, не выполняются в сборке выпуска, но активны в сборке отладки.

Каждый из этих элементов является независимым и необязательным! Вы можете включить или выключить любой из них или все и по-прежнему запускать код в отладчике, вы просто не найдете жизнь такой легкой.

Когда вы запускаете «с отладкой», все работает по-разному по нескольким причинам:

  • Отладчик VS очень неэффективен при запуске, отчасти потому, что все в VS работает медленно - в версиях до VS2010 каждый пиксель экрана будет перерисован примерно в 30 раз, когда IDE переходит в режим отладки с большим количеством миганий и мерцаний.
  • В зависимости от того, как все настроено, отладчик может потратить много времени при запуске, пытаясь загрузить символы (т. Е.PDB files) для множества компонентов ОС, которые являются частью вашего процесса - он может попытаться получить эти файлы через Интернет, что в некоторых случаях может занять много времени.
  • Ряд действий, которые обычно выполняет ваше приложение (загрузка библиотек DLL, запуск потоков, обработка исключений), вызывают предупреждение отладчика. Это замедляет их работу и заставляет их работать последовательно.
7
ответ дан 30 November 2019 в 21:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: