Reading 这个问题 https://stackoverflow.com/questions/5100947/how-can-i-have-different-properties-and-such-in-a-vs-2010-setup-project-for-the-f,在第一条评论中,@Cody Gray 说:
嗯,你知道你不应该
重新分发“调试”版本,
正确的?
我很担心。在 Visual Studio 中,我通常在调试模式下开发应用程序,如果我需要分发可执行文件,我所做的就是压缩.exe
并要求.dll
文件(在bin\Debug
文件夹)。
为什么这是一个坏主意?
这样做与在发布模式下执行完全相同的操作有什么区别?
Edit:
我不久前问过这个问题,但我只是想编辑它以添加差异:
使用时Debug.Assert
在代码中进行测试,然后编译发布模式,所有这些线都消失了,所以这可能是另一个区别。
这取决于您使用哪种语言来开发程序。当您使用 C++ 时,您会获得 /RTC 的开销和“编辑 + 继续”支持。它们会大大减慢生成代码的速度,并且如果您使用递归,您的应用程序很可能会在 StackOverflow 上尽早崩溃。如果没有调试器,从检查代码中获得的运行时异常可能很难诊断。
如果您使用 VB.NET,那么当您使用不带调试器的调试版本时,您很容易会出现不可插入的内存泄漏。其“编辑 + 继续”支持代码中的缺陷会导致包含 WithEvents 事件的类的每个实例泄漏 WeakReference。您的应用程序最终会因 OutOfMemory 异常而终止。
如果您使用 C#,那么不会出错,只是 JIT 编译器无法生成优化的机器代码,并且垃圾收集效率不高。您的程序将运行缓慢并且消耗比必要的更多的内存。这也适用于 VB.NET 和 C++/CLI。
程序员在编写代码时通常首先考虑的是性能。因此,发布调试版本有点亵渎。然而,大量程序通常完全受到 I/O、磁盘、网卡或数据库服务器的限制。在这种情况下,原始 cpu 性能并不重要。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)