首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.net优化中的调试与发布(分发给用户时需要注意的问题)

.net优化中的调试与发布(分发给用户时需要注意的问题)
EN

Stack Overflow用户
提问于 2013-01-07 00:05:02
回答 2查看 2.3K关注 0票数 10

向公众分发DebugRelease版本是否存在任何安全或性能问题?

大多数情况下,我只是将.exe文件打包到Debug文件夹(以及所需的依赖项)中,并将其提供给用户。

有什么理由更喜欢一个而不是另一个来分发吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-07 00:18:33

我想不出有什么安全问题。这肯定是一个性能问题,程序集的调试版本包含一个属性(DebuggableAttribute),该属性将始终阻止抖动优化器优化代码。这会对正在运行的程序的性能产生很大的影响。抖动执行的优化记录在this answer中。

你可能会遇到内存消耗的问题。垃圾收集器将以不同的方式操作,使局部变量保持活动状态,直到方法体结束。这只是一个转折点,假设你使用了真实的数据,那么在测试应用程序时就应该诊断出这样的问题。

特定于VB.NET,发布调试版本很容易导致程序在没有附加调试器的情况下在用户的计算机上运行时使用OutOfMemoryException崩溃。它失败的原因是Edit+Continue使用WeakReferences跟踪具有带有WithEvents关键字的事件处理程序的类的泄漏。

如果您不需要抖动优化器产生的性能增强,也不需要发布VB.NET程序集,那么就没有太多需要担心的了。

票数 8
EN

Stack Overflow用户

发布于 2013-01-07 00:12:20

是的,当然有-安全和性能方面的影响。

调试版本包含比发布版本更多的信息,并且许多编译器优化对于调试版本是关闭的。

另请参阅此处的Debug/Release difference

有没有理由更喜欢一个而不是另一个来分发?

是。如果您想要一个经过优化编译的更快的二进制文件,请使用release

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14183924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档