Я знаю, что библиотека классов, скомпилированная в режиме «Release», будет работать быстрее и эффективнее, чем библиотека, скомпилированная в режиме «Debug», но знает ли кто-нибудь, в какой степени?
РЕДАКТИРОВАТЬ: это для DLL .net.
Я знаю, что библиотека классов, скомпилированная в режиме «Release», будет работать быстрее и эффективнее, чем библиотека, скомпилированная в режиме «Debug», но знает ли кто-нибудь, в какой степени?
РЕДАКТИРОВАТЬ: это для DLL .net.
Это определенно зависит от типа кода. Если программа в основном представляет собой серию вызовов существующего кода (в среде CLR или где-либо еще), то ее оптимизация не окажет большого влияния. Но если он выполняет значительную обработку, например, перебирает данные для вычисления хэша, то это может быть намного быстрее, легко с множителем два, упомянутым kingchris.
Имейте в виду, что Debug / Release немного странен для .NET, поскольку это флаг, влияющий на JIT-компиляцию. Это означает, что код выпуска, выполняемый под отладчиком, по умолчанию обрабатывается как код отладки и поэтому не оптимизируется. Проверьте параметры отладчика, если это вас беспокоит.
Когда вы используете язык, который зависит / полагается на оптимизацию, например C ++ / CLI, разница может легко составить 10 раз. Это связано с тем, что сгенерированный IL уже будет медленнее, а запуск этого IL в отладчике накладывает штраф вдобавок к этому.