【发布时间】:2011-01-27 14:39:06
【问题描述】:
我遇到过以下段落:
“在 Visual Studio 中编译代码时,IDE 中的调试与发布设置对性能几乎没有影响……生成的代码几乎相同。 C# 编译器实际上并没有做任何优化。 C# 编译器只是吐出 IL……而在运行时它是 JITer 进行所有优化。 JITer 确实有一个 Debug/Release 模式,这对性能有很大的影响。但这并不决定您是否运行项目的 Debug 或 Release 配置,而是决定是否附加了调试器。”
有人可以指导我阅读可以实际证明这一点的 Microsoft 文章吗?
谷歌搜索“C# 调试与发布性能”主要返回结果说“调试有很多性能损失”、“发布已优化 ”,以及“不要将调试部署到生产环境中”。
【问题讨论】:
-
-
另外,如果您关心内存使用,可能会有很大差异。我见过一个案例,在调试模式下编译的多线程 Windows 服务每个线程使用 700MB,而在发布版本中每个线程使用 50MB。在典型的使用条件下,Debug 版本很快就会耗尽内存。
-
@Bengie - 您是否确认如果您将调试器附加到发布版本,它的运行速度仍然快 2 倍?请注意,上面的引用表示 JIT 优化受是否附加调试器的影响。
标签: c# performance debugging release