我在我的Java应用程序中安装了一个低内存检测器,它似乎运行良好。我将MemoryPoolMXBean
与NotificationListener
结合使用,将堆的collectionUsageThreshold
设置为size * 0.9999
但是,我的应用程序中也有很多SoftReferences。即使应用程序在没有低内存检测器的情况下运行正常,检测器也会发出警告 - 很可能是因为GC尚未清除SoftReferences。
有没有办法警告我,如果可清除的所有SoftReferences都被清除后,x%的可用内存是否已用完?