向公众分发Debug与Release版本是否存在任何安全或性能问题?
大多数情况下,我只是将.exe文件打包到Debug文件夹(以及所需的依赖项)中,并将其提供给用户。
有什么理由更喜欢一个而不是另一个来分发吗?
发布于 2013-01-07 00:18:33
我想不出有什么安全问题。这肯定是一个性能问题,程序集的调试版本包含一个属性(DebuggableAttribute),该属性将始终阻止抖动优化器优化代码。这会对正在运行的程序的性能产生很大的影响。抖动执行的优化记录在this answer中。
你可能会遇到内存消耗的问题。垃圾收集器将以不同的方式操作,使局部变量保持活动状态,直到方法体结束。这只是一个转折点,假设你使用了真实的数据,那么在测试应用程序时就应该诊断出这样的问题。
特定于VB.NET,发布调试版本很容易导致程序在没有附加调试器的情况下在用户的计算机上运行时使用OutOfMemoryException崩溃。它失败的原因是Edit+Continue使用WeakReferences跟踪具有带有WithEvents关键字的事件处理程序的类的泄漏。
如果您不需要抖动优化器产生的性能增强,也不需要发布VB.NET程序集,那么就没有太多需要担心的了。
发布于 2013-01-07 00:12:20
是的,当然有-安全和性能方面的影响。
调试版本包含比发布版本更多的信息,并且许多编译器优化对于调试版本是关闭的。
另请参阅此处的Debug/Release difference。
有没有理由更喜欢一个而不是另一个来分发?
是。如果您想要一个经过优化编译的更快的二进制文件,请使用release。
https://stackoverflow.com/questions/14183924
复制相似问题