通过阅读关于垃圾收集的苔丝·费兰德斯的博客,她说,收集有三个可能的原因:
我理解第1点和第2点,但记忆压力在第3点意味着什么?
我原以为这是系统中可用的普通内存,但如果系统真的耗尽了所有内存,那么我可以想象整个系统会出现蓝屏。
记忆压力到底是什么意思?这与超过一代人的预算有什么不同?
发布于 2018-05-12 16:59:17
在第3点中,Tess提到Windows在可用内存不足的情况下发送的“低内存通知”。应用程序可能会听取通知--在更糟糕的事情发生之前做出某种反应(例如,保存它的关键数据等等)。行为良好的应用程序甚至可以通过调整自己的内存使用量来帮助操作系统。
CLR正在监听低内存通知。当发生这种情况时,GC就会被触发,通常情况下,它会使GC更具侵略性。这些好处是相互的,因为减少内存压力有助于系统中的所有应用程序(包括.NET应用程序本身)。
当准确地发送低内存通知时,并没有很好地记录下来。根据内部System.Runtime.Caching.PhysicalMemoryMonitor类中的注释(这反过来是基于内部实现的注释),当占用了大约97-99%的物理内存(取决于系统中安装的物理内存数量)时,就会发出低内存通知。
https://stackoverflow.com/questions/50306410
复制相似问题