В режиме отладки вы хотите накладные расходы. Вы хотите, чтобы он обнаружил, сломали ли вы свой стек, переполнили ли вы буферы и т. Д. Эти издержки встроены в инструментарий отладки и отладчик. В терминах высокого уровня инструментарий отладки - это дополнительный код и данные, помещаемые туда, чтобы помочь помечать ошибки, а отладчик предназначен для обнаружения помеченных ошибок и уведомления пользователя (в дополнение, конечно, к отладке).
Если вы работаете с проектом, скомпилированным в режиме выпуска, или без отладчика, никто не услышит крик вашей программы, когда она умрет :) Если дерево падает в лес ...
В зависимости от того, как вы программируете, C ++ программирует без тренировочных колес. Если вы ударите стену, никто не будет там, чтобы сказать вам, что вы облажались. Вы просто рухнете и сгоритесь, или, что еще хуже, рухнете и продолжите бежать в очень искалеченном состоянии, не зная, что что-то не так. Из-за этого это может быть очень быстро. Не существует никаких дополнительных проверок или мер безопасности, чтобы не допустить проникновения в вашу программу с полной скоростью и потенциалом процессора (и, конечно, сколько дополнительных шагов вы закодировали в своей программе).