运维开发网

.NET垃圾收集器在Release build WITH调试符号上的攻击性是否较低?

运维开发网 https://www.qedev.com 2020-07-09 17:06 出处:网络 作者:运维开发网整理
在.NET 4.5中,我们已经设置了程序集来为Release构建构建调试符号 – 以帮助调试客户站点上的故障转储等. 我的问题是:如果没有附加调试器并且在生产中正常运行,调试符号的存在会导致垃圾收集器的行为不同吗? 我最近在电子书中阅读了以下内容: “这些程序集中的每一个都将使用调试符号进行编译,导致性能较差,这意味着GC将无法像发布版本那样有效地工作.实际上,当包含调试符号时,GC在回收内存方面
在.NET 4.5中,我们已经设置了程序集来为Release构建构建调试符号 – 以帮助调试客户站点上的故障转储等.

我的问题是:如果没有附加调试器并且在生产中正常运行,调试符号的存在会导致垃圾收集器的行为不同吗?

我最近在电子书中阅读了以下内容:

“这些程序集中的每一个都将使用调试符号进行编译,导致性能较差,这意味着GC将无法像发布版本那样有效地工作.实际上,当包含调试符号时,GC在回收内存方面的积极性较低.由于包含调试符号,因此

GC需要准备好可以附加调试器,并且许多用于识别无法访问的引用的规则可能不适用.随附调试器,a

可以访问更多的对象.“

这是真的?

您正在阅读的内容适用于在调试模式下编译的代码,或者在某种程度上,附带调试器的代码.调试符号只是在调试模式下编译的副作用,调试符号本身不会改变行为.

垃圾收集器将调试模式中变量的生命周期从变量使用扩展到可变范围.这是基于调试器的存在,而不是存在调试符号.

0

精彩评论

暂无评论...
验证码 换一张
取 消