【发布时间】:2020-05-30 11:36:11
【问题描述】:
我在我的一个基类中添加了一个析构函数,用于帮助寻找内存泄漏,如下所示:
#if DEBUG
~BaseViewModel()
{
Debug.WriteLine("View Model Disposed");
}
#endif
即使删除 Debug.WriteLine 代码
存在析构函数会影响调试构建的性能吗?
【问题讨论】:
-
拥有一个将使您的对象保持更长时间,因为它将被添加到 GC 的终结器队列中。如果不需要,不要添加。
-
你不需要它......你删除的任何东西都会以某种方式提高性能,但这是你可以测试的东西。如果不使用非托管资源,通常不需要它。
-
首先,对于性能检查 - 你需要自己测试,这是唯一的方法。其次,这看起来是一种很糟糕的查找内存泄漏的方法。
-
学习使用分析器,这样您就不必像这样进行测试了
-
您还需要弄清楚您的术语。 Destructor 和 Disposal 和不是同一个概念。
标签: c# performance memory-management garbage-collection destructor