Установить конфигурацию для выпуска или оставить как отладочную - PullRequest
0 голосов
/ 25 июля 2011

В Visual Studio, когда вы компилируете свой код для его установки в производственной среде, вы меняете конфигурацию на «релиз»?Если вы это сделаете, вы обнаружили некоторое улучшение производительности, или вы делаете, потому что какой-то другой фактор?Можете ли вы поделиться этим фактором?

Ответы [ 5 ]

3 голосов
/ 25 июля 2011

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

Однако есть способ добиться лучшего в обоих мирах: http://www.hanselman.com/blog/PermaLink.aspx?guid=a40c0d4f-66d0-4704-94f6-0efda4a44465

2 голосов
/ 25 июля 2011

Измените его на Release для того, что вы развернете. Цель выпуска включает оптимизацию. Все остальные факторы равны вашему коду быстрее. Степень улучшения зависит от вашего кода.

Release также отключает константы DEBUG и TRACE. Оба могут выполнить дополнительный код или даже создать доступ к файлу (запись журналов), который обычно не требуется в рабочей среде.

1 голос
/ 25 июля 2011

У нас есть наш сервер сборки, настроенный на сборку релизов для QA (и мы отправляем то, что тестируем).

Насколько я понимаю, сборки, производимые в режиме выпуска:

  • быстрее
  • меньше
  • не содержат отладочной информации.

Для получения более подробной информации, взгляните на эти:

1 голос
/ 25 июля 2011

Обычно вы используете конфигурацию выпуска.Отладочная версия, как правило, большие файлы, иногда гораздо больше;они обычно используют больше памяти, чем конфигурации выпуска (поскольку они дополняют переменные / глобальные переменные для отладки управления памятью и т. д.), а также выполняют разные действия для освобождения, поскольку они инициализируют неинициализированные переменные определенным значениям (обычно все \ 0, но я думаю, что это определимо для проекта).

Поскольку они также содержат отладочную информацию, это может позволить конечному пользователю гораздо проще перепроектировать исполняемый файл / библиотеку, чего вы, вероятно, не хотите, чтобы они могли делать.

Скорее всего, в производственной среде также потребуются установленные библиотеки отладки, которые добавляют к распространяемым файлам, которые вам нужно будет упаковать в ваше приложение.

1 голос
/ 25 июля 2011

Когда у вас установлена ​​конфигурация Debug, компилятор генерирует много дополнительной информации, чтобы вы могли шагать по коду в Visual Studio. Если вы создаете библиотеку или что-то еще, и хотите, чтобы она была производственной, вы не хотите выпускать отладочную версию. Это будет раздутым. Кроме того, если он не будет обрабатывать сбои так элегантно (не то, что вы должны иметь в первую очередь: P).

В частности, компилятор не будет оптимизировать вещи так, как это обычно возможно, так как ему требуется определенная информация для возврата отладчику. Релизная версия, безусловно, будет работать быстрее, но ее производительность не всегда заметно увеличивается.

...