Que notifica al alcanzar el 80% de uso del montón

Leopardo :

Tengo una memoria caché interna que se celebra en el montón. Me gustaría notificar cuando el montón se utiliza 80% (después de la recogida gc) de modo que pueda organizar para el tamaño del montón que aumentarse (o alguna otra acción)

Estoy echando un vistazo a: https://docs.oracle.com/javase/7/docs/api/java/lang/management/MemoryMXBean.html , específicamente: https://docs.oracle.com/javase/ 7 / docs / api / java / lang / gestión / MemoryNotificationInfo.html # MEMORY_COLLECTION_THRESHOLD_EXCEEDED

Parece que puedo establecer el umbral aquí: https://docs.oracle.com/javase/7/docs/api/java/lang/management/MemoryPoolMXBean.html#setCollectionUsageThreshold(long) , sin embargo no estoy seguro si esto tendrá ningún indeseado afecta.

¿Cuál es la mejor manera de lograr lo que busco?

Charles Dowbecki:

Puede echar un vistazo a la forma de la colmena lo hace en HeapMemoryMonitorla clase que exige MemoryPoolMXBean.setUsageThreshold()método después de que las comprobaciones se realizan.

Si desea umbral establecido al 80% se debe calcular el valor como:

MemoryPoolMXBean pool = ... 
pool.setUsageThreshold((long) Math.floor(pool.getUsage().getMax() * 0.8));

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=190496&siteId=1
Recomendado
Clasificación