在Visual Studio中,当您编译代码以在生产环境中安装它时,您是否将配置更改为“release”?如果你这样做,你有没有发现一些性能提升,或者你做了其他因素?你能分享这个因素吗?
答案 0 :(得分:3)
发布模式代码通过编译器优化,删除所有调试符号,丢弃项目状态信息,并且可以更有效,更轻松地运行它。 t将库的发布模式版本发布到生产中总是一个好主意。
然而,有一个技巧可以充分利用这两个方面:http://www.hanselman.com/blog/PermaLink.aspx?guid=a40c0d4f-66d0-4704-94f6-0efda4a44465
答案 1 :(得分:2)
将部署内容更改为Release。在优化时释放目标开关。所有其他因素与您的代码相等更快。改进程度取决于您的代码。
Release还会关闭DEBUG和TRACE常量。两者都可以执行其他代码,甚至可以创建通常在生产环境中不需要的文件访问(写入日志)。
答案 2 :(得分:1)
当您将配置设置为Debug时,编译器会生成许多额外信息,以便您可以在Visual Studio中逐步执行代码。如果您正在制作库或任何其他内容,并且您希望它可以生成,那么您不希望发布调试版本。它会变得臃肿。此外,如果它不会优雅地处理崩溃(不是你应该首先处理崩溃:P)。
具体来说,编译器不会像通常那样优化事物,因为它需要某些信息才能返回调试器。发布版本肯定会运行得更快,但并不总是显着提升性能。
答案 3 :(得分:1)
您通常会使用发布配置。调试版通常是较大的文件,有时要大得多;它们通常使用比释放配置更多的内存(因为它们填充变量/全局变量用于调试内存管理等),并且还执行不同的释放,因为它们将未初始化的变量初始化为特定值(通常都是\ 0,但我认为这是可定义的每个项目)。
由于它们还包含调试信息,因此它可以让最终用户更容易地对可执行文件/库进行反向工程,这可能是您不希望它们执行的。
生产环境很可能还需要安装调试库,这会增加您必须与应用程序打包的可重新分发的文件。
答案 4 :(得分:1)
我们已经建立了构建服务器,以便为QA执行发布版本(我们会发布测试内容)。
据我了解,在发布模式下生成的程序集是:
有关更多详细信息,请查看以下内容: