繁体   English   中英

“记忆压力”是什么意思?

[英]What is meant by “Memory Pressure”?

通过Tess Ferrandez的垃圾收集博客 ,她说收集有三种可能的原因:

  1. 当您分配新对象并达到第0代预算时,即新对象是否会导致超出预算。
  2. 当有人调用GC.Collect(诱导GC)时
  3. 基于记忆压力

我理解第1点和第2点,但第3点的记忆压力是什么意思?

我原以为它是系统中可用的通用内存,但是如果系统确实耗尽了它的所有内存,那么我会想象整个系统都是蓝屏。

这实际上意味着我的记忆压力 它与超出一代预算有何不同?

在第3点,Tess指的是Windows在可用内存不足的情况下发送的“低内存通知”。 应用程序可能会收听该通知 - 在发生更糟糕的事情之前以某种方式做出反应(例如,保存其关键数据等等)。 性能良好的应用程序甚至可以尝试通过修剪自己的内存使用来帮助操作系统。

CLR正在侦听低内存通知。 当它发生时,GC被触发,通常,它会使GC更具侵略性。 好处是相互的,因为减少内存压力有助于系统中的所有应用程序(包括.NET应用程序本身)。

当发送确切的低内存通知时,没有很好地记录。 根据内部System.Runtime.Caching.PhysicalMemoryMonitor类中的注释,该类反过来基于内部Windows实现的注释,当占用大约97-99%的物理内存时,将发出低内存通知信号(取决于物理内存)系统中安装的RAM量)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM