GarbageCollectionNotificationInfo 值看起来无效
GarbageCollectionNotificationInfo values look invalid
我正在使用 GarbageCollectionNotificationInfo
通知来跟踪 GC 事件。这很好,但看起来输出无效。我希望 getGcInfo().getMemoryUsageBeforeGc() -> MemoryUsage.getUsed()
会在 运行 当前 GC 之前报告特定的段使用情况。
但它始终等于之前通知中的 getGcInfo().getMemoryUsageAfterGc()
。这里有什么问题?
这是我使用的并且它正在工作 :) 我的意思是我在 GC 之前和之后都得到了正确的数字。
public synchronized void handleNotification(Notification notification, Object handback) {
if (GARBAGE_COLLECTION_NOTIFICATION.equals(notification.getType())) {
GarbageCollectionNotificationInfo info = from((CompositeData) notification.getUserData());
com.sun.management.GarbageCollectorMXBean mxBean = (com.sun.management.GarbageCollectorMXBean) handback;
GcInfo gcInfo = mxBean.getLastGcInfo();
if (gcInfo != null) {
//use gcInfo.getMemoryUsageBeforeGc() and gcInfo.getMemoryUsageAfterGc()
}
}
}
我正在使用 GarbageCollectionNotificationInfo
通知来跟踪 GC 事件。这很好,但看起来输出无效。我希望 getGcInfo().getMemoryUsageBeforeGc() -> MemoryUsage.getUsed()
会在 运行 当前 GC 之前报告特定的段使用情况。
但它始终等于之前通知中的 getGcInfo().getMemoryUsageAfterGc()
。这里有什么问题?
这是我使用的并且它正在工作 :) 我的意思是我在 GC 之前和之后都得到了正确的数字。
public synchronized void handleNotification(Notification notification, Object handback) {
if (GARBAGE_COLLECTION_NOTIFICATION.equals(notification.getType())) {
GarbageCollectionNotificationInfo info = from((CompositeData) notification.getUserData());
com.sun.management.GarbageCollectorMXBean mxBean = (com.sun.management.GarbageCollectorMXBean) handback;
GcInfo gcInfo = mxBean.getLastGcInfo();
if (gcInfo != null) {
//use gcInfo.getMemoryUsageBeforeGc() and gcInfo.getMemoryUsageAfterGc()
}
}
}