在 .NET 4.5 中,我们设置了我们的程序集来构建发布版本的调试符号 - 以帮助在客户站点上调试故障转储等。
我的问题是:如果没有附加调试器并在生产中正常运行,调试符号的存在是否会导致垃圾收集器的行为不同?
我最近在一本电子书中读到以下内容:
“这些程序集中的每一个都将使用调试符号进行编译,从而导致性能下降,并且意味着 GC 将无法像在发布版本中那样有效地工作。本质上,当包含调试符号时,GC 在回收内存方面的积极性会降低。由于包含调试符号,GC 需要准备好可以附加调试器,并且许多用于识别不可访问引用的规则可能不适用。附加调试器后,可能会访问更多对象。
这是真的?