gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 05:54:48 27 4
gpt4 key购买 nike

如果我 100% 确定我不会再使用某个对象,无论它有多大(或有多大),作为一个有爱心的开发人员,省钱进入 Azure 托管,我应该自己调用它的析构函数还是我应该把它留给 G.C 吗?

详细信息:

  • 我确实需要在一台机器上压缩尽可能多的应用
  • 我的应用程序已在 32 位平台上运行,以节省内存
  • 诊断表明,响应时间受 G.C. 影响很大。运行
  • 已经实现了其他吝啬技术
  • 我不介意这样做,并且只打算对不受 DI 容器控制的对象这样做

最佳答案

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

你应该做什么:

  • 处置 IDisposable 对象
  • 当您认为可以接受时,请考虑有时强制执行 GC。

其他想法:

  • 分析以了解收集最多的对象类型以及总体上哪些类型会给 GC 带来压力。
  • 考虑不要让对象在平均时间内保持事件状态(更喜欢非常短或非常长的生命周期),保持长期存在的对象不被修改(更喜欢完全不可变的对象来长时间缓存值)
  • 了解影响 GC 效率的其他因素(例如固定缓冲区)。

关于c# - 我应该自己调用析构函数吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43215781/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com