【问题标题】:Get notified about the critical memory usage / remaining available memory获取有关关键内存使用/剩余可用内存的通知
【发布时间】:2014-07-03 16:45:18
【问题描述】:

获得有关关键内存使用/剩余可用内存的通知的最佳方式是什么?我目前正在研究缓存实现,其中缓存大小应动态适应可用内存。

【问题讨论】:

    标签: c# caching memory garbage-collection out-of-memory


    【解决方案1】:

    您可以使用GC.RegisterForFullGCNotification(),以便在即将进行完整 GC 收集时收到通知。详情请见Garbage Collection Notifications on MSDN

    这并不能真正告诉您内存正在变低,但它确实为您提供了一个检查内存的好地方。但是,它不会告诉您何时释放了大量内存,因此它可能对您不是完全有用。

    您也可以查看MemoryFailPoint class。这不会给您通知,但可以让您在实际分配内存之前确定内存分配是否可能失败。

    【讨论】:

    • 有趣。您认为使用GC.RegisterForFullGCNotification() 并在回调中从Memory/Available Bytes 之类的性能计数器获取剩余可用内存有意义吗?
    • @jrg 是的,我似乎记得有人在某个地方这样做过……可惜找不到链接。
    猜你喜欢
    • 2013-02-07
    • 1970-01-01
    • 1970-01-01
    • 2017-12-13
    • 2012-12-24
    • 1970-01-01
    • 1970-01-01
    • 2012-01-20
    • 1970-01-01
    相关资源
    最近更新 更多