2010-03-12 67 views

回答

0

嗯?除非你可以量化地說那個峯值出現時,你會如何期待這個被執行?如果每個時間點都可能是您想要保存的狀態,並且無法預先知道,則必須爲所有點保存完整的快照。這聽起來很難。

+0

if(當前峯值>峯值到目前爲止)覆蓋快照//不難嗎? – MalcomTucker

+0

@MalcolmTucker:所以如果你做了一個非常昂貴的操作(因爲我假設存儲虛擬機的全部狀態),每次都是真實的,並且例如*增長*達到最大值,它將會多次觸發。當然,也可以有當地的最低標準。 – unwind

0

使用VisualVM/JConsole監視應用程序。當你看到高峯時做堆轉儲。

另一種方法是(如果你不想監視)把Xmx減少到你知道的肯定會引發內存異常的東西。並激活標誌-XX:+ HeapDumpOnOutOfMemoryError