【发布时间】:2014-07-03 16:45:18
【问题描述】:
获得有关关键内存使用/剩余可用内存的通知的最佳方式是什么?我目前正在研究缓存实现,其中缓存大小应动态适应可用内存。
【问题讨论】:
标签: c# caching memory garbage-collection out-of-memory
获得有关关键内存使用/剩余可用内存的通知的最佳方式是什么?我目前正在研究缓存实现,其中缓存大小应动态适应可用内存。
【问题讨论】:
标签: c# caching memory garbage-collection out-of-memory
您可以使用GC.RegisterForFullGCNotification(),以便在即将进行完整 GC 收集时收到通知。详情请见Garbage Collection Notifications on MSDN。
这并不能真正告诉您内存正在变低,但它确实为您提供了一个检查内存的好地方。但是,它不会告诉您何时释放了大量内存,因此它可能对您不是完全有用。
您也可以查看MemoryFailPoint class。这不会给您通知,但可以让您在实际分配内存之前确定内存分配是否可能失败。
【讨论】:
GC.RegisterForFullGCNotification() 并在回调中从Memory/Available Bytes 之类的性能计数器获取剩余可用内存有意义吗?