我有一個應用程序,我已啓用GC日誌記錄。堆似乎增長然後突然下降,但不記錄完整的GC。如果有一些可以啓用的啓動參數會告訴我什麼GC事件正在減少堆大小?UseConcMarkSweepGC詳細gc輸出顯示內存丟失
我的環境: Linux 64位,JAVA 1.6.0_31,Java的熱點(TM)64位服務器VM(建20.6-B01,混合模式)
VM ARGS: -server -Xms2560m -Xmx2560m -XX:+ UseConcMarkSweepGC -XX:MaxPermSize參數=256米-XX:-PrintGC -XX: -PrintGCDetails -XX:-PrintGCTimeStamps -Xloggc:/xxxxx/gc.log -Dsun.rmi.dgc.client.gcInterval = 86400000 -Dsun.rmi.dgc.server.gcInterval = 86400000
3057.609: [GC 2397254K->2385777K(2619328K), 0.0572310 secs]
3058.898: [GC 2402801K->2391301K(2619328K), 0.0566620 secs]
3059.940: [GC 2408325K->2397156K(2619328K), 0.0534080 secs]
3059.995: [GC 2397265K(2619328K), 0.0069950 secs]
3065.635: [GC 2414180K->2404934K(2619328K), 0.0732700 secs]
3065.849: [GC 2419994K(2619328K), 0.1150630 secs]
3070.248: [GC 1593931K->1591825K(2619328K), 0.1084230 secs]
3072.440: [GC 1608552K->1606431K(2619328K), 0.0533140 secs]
3087.759: [GC 1623455K->1614544K(2619328K), 0.0215850 secs]
什麼前夕NT導致堆在3065.849和3070.248的輸出之間縮小?有沒有一個虛擬機參數會記錄它?我試着添加-verbose:gc但不會改變輸出。
您的虛擬現實參數告訴它關閉這些選項,您希望將它們打開,使其前綴爲+而不是 - 即-XX:+ PrintGCTimeStamps不是-XX:-PrintGCTimestamps。這就是爲什麼你沒有得到關於發生的事情的更多細節。 – Matt
啊,謝謝,歡呼,這會讓我看到失蹤的事件嗎? – m0thra
你肯定會得到更多的信息,你可以在這裏發表,如果它不是自我解釋。 – Matt