【问题标题】:TO Clean C# program cache memory [closed]清理 C# 程序缓存内存 [关闭]
【发布时间】:2016-10-04 08:01:35
【问题描述】:

我想为桌面运行的应用程序设置自动清理方法,因为它会抛出“内存不足”错误。

有没有办法做到这一点?

.

【问题讨论】:

  • 此问题没有足够的数据来帮助您,但您可以取消分配大变量并致电GC.Collect
  • 如果您使用 C# 时内存不足,那是因为您没有释放一些资源,或者您只是需要比可用资源更多的资源。垃圾收集器将在它准备好运行时运行,这由它自己的内部逻辑决定。随着项目被提升为服务时间更长的堆,自行触发垃圾回收可能会产生严重且意想不到的性能影响。

标签: c# caching memory


【解决方案1】:

已经有了“自动清洗方式”; GC。你几乎不需要告诉它该做什么——它比大多数人更了解记忆。如果您的代码抛出 OOM,您需要调查为什么;例如,您是否在泄漏对象? (静态事件处理程序因此而臭名昭著);您是否要求大量连续内存(巨大的数组等)?您是否要求超过 2 GiB 的阵列(未启用大型阵列支持)?您是否在 32 位上运行并且只使用大量内存?它实际上不是真正的OOM条件,而是真的GDI+处理耗尽(以同样的方式演示)?

首先要检查的是您的进程正在使用多少内存 - 以及操作系统有多少可用内存 - 当它抛出 OOM 时。如果有大量可用内存,则实际上并不是 OOM(除非您在 32 位系统上使用超过 1 GiB,在这种情况下,所有赌注都没有了)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-17
    • 1970-01-01
    • 1970-01-01
    • 2012-09-10
    • 2013-03-22
    • 1970-01-01
    • 1970-01-01
    • 2017-02-18
    相关资源
    最近更新 更多