我应该自己调用析构函数吗

Should I call destructor by myself

如果我 100% 确定我将不再使用一个对象,无论它是哪个(或多大),作为一个有爱心的开发人员,我是否应该通过以下方式调用它的析构函数我自己还是应该离开它,将其委托给 G.C?

详情:

没有 "destructor" 的对象会 释放对象使用的内存 ,所以严格来说 - 不,你不需要调用析构函数自己(即使你可以)实现你的目标。垃圾收集是唯一真正可以释放对象使用的内存的东西。

你应该做什么:

  • 处理 IDisposable 个对象
  • 在您认为可以接受的时候考虑强制执行 GC。

其他想法:

  • 配置文件以了解哪种类型的对象被收集最多以及总体上哪些类型对 GC 造成压力。
  • 考虑不要让对象在平均时间内保持活动状态(更喜欢非常短或非常长的生命周期),保持长期存在的对象不被修改(更喜欢完全不可变的对象而不是长时间缓存值)
  • 阅读影响 GC 有效性的其他因素(如固定缓冲区)。