Налагодження релізу замість дебаг версії - stack overflow російською

Так може має сенс відразу налагоджувати релізний версію? Плюси: - працює на порядок швидше, актуально для великих проектів; - програмісти відразу починають тестувати версію, яку буде використовувати замовник; - паралельно можна запускати профілювальник. Мінуси: - не весь код можна налагоджувати, в такому випадку можна перейти на отладочную версію; - не працюють assert і будь-яких видача налагоджувальних повідомлень. - atropin 3 Квітня '13 о 5:40

> Плюси: - працює на порядок швидше Якщо реліз працює на порядок швидше, то це привід задуматися.> Актуально для великих проектів; для них інше актуально - швидкість компіляції. А правильна дебажная збірка буде збиратися швидше (компілятору не потрібно робити зайву оптимізацію).> Паралельно можна запускати профілювальник який загальмує в багато разів код. Тестувати з паралельним профілювальником - ще те задоволення.> Не працюють assert і будь-яких видача налагоджувальних повідомлень. це зазвичай можна підлаштувати ключами для препроцесора. - KoVadim 3 Квітня '13 в 6:51

> Якщо реліз працює на порядок швидше, то це привід задуматися. У дебаге працює купа перевірок. Наприклад, в STL перевірка виходу за межі розміру контейнерів і т.п. assert 'и і т.п.> швидкість компіляції Зазвичай при розробці немає необхідності часто збирати заново весь проект. Робота йде з невеликою кількістю бібліотек.> Який загальмує в багато разів код. Тестувати з паралельним> профілювальником - ще те задоволення. Програма з профілювальник від VS 10 працює практично з тією ж швидкістю, що і без. - atropin 3 Квітня '13 о 15:02

При компіляції релізной версії компілятор застосовує ряд оптимізацій, покликаних змусити ваш код працювати швидше. Але при цьому може знизитися стабільність програми, і вона почне вилітати. Саме для пошуку місця, де вилітає оптимізована програма, і знаходження тієї оптимізації, яка це викликала, і застосовується налагодження release-версії. В інших випадках налагодження виробляють під debug-версією. При створенні debug-версії компілятор не тільки відключає всі оптимізації, але і генерує символьну зневадження, яка допомагає в налагодженні програми. Ця інформація не включається в релізний версію (так як користувачу додатки вона не потрібна).

відповідь дан 29 Березня '13 о 11:45

Взагалі-то, якщо програма вилітає - це баг. Те, що баг випадково не проявляється при якихось умовах (наприклад, в отладочной конфігурації), що не робить його менш небезпечним. Навпаки, баг, який проявляється тільки при певних умовах, набагато більш небезпечний, так як ви не знаєте, в який момент він зіпсує дані користувача. - VladD 2 Квітня '13 о 11:49