Java中是否有任何交付的功能通知應用程序中的內存不足(或通知它已達到預定義級別)?Java中內存不足的通知
我想知道是否可以在某處註冊一個監聽器(或其他類似的東西)?我知道運行時類中的內存方法。我可以自己創建一個計劃任務來檢查剩餘內存,但是我想知道是否已經有一個現有的解決方案。
我不這麼認爲,但我正在尋求確認。
從記錄上
MemoryMXBean mbean = ManagementFactory.getMemoryMXBean();
NotificationEmitter emitter = (NotificationEmitter) mbean;
NotificationListener listener = new NotificationListener() {
@Override
public void handleNotification(Notification notif, Object handback) {
String notifType = notif.getType();
if (notifType.equals(MemoryNotificationInfo.MEMORY_THRESHOLD_EXCEEDED) ||
notifType.equals(MemoryNotificationInfo.MEMORY_COLLECTION_THRESHOLD_EXCEEDED)) {
// Retrieve the memory notification information
CompositeData cd = (CompositeData) notif.getUserData();
MemoryNotificationInfo info = MemoryNotificationInfo.from(cd);
MemoryUsage mu = info.getUsage();
System.out.println("Maximum memory = " + mu.getMax());
System.out.println("Used memory = " + mu.getUsed());
}
}
};
emitter.addNotificationListener(listener, null, null);
+1發佈您的代碼! – Andy 2011-05-28 17:31:16
@Andy這就是我通過Javadoc閱讀的內容。 – JVerstry 2011-05-28 21:18:28