我觀察到「完整的GC(系統)」消息每60分鐘寫入我的日誌。當我這樣做:如何將Runtime.gc()替換爲我自己的實現?
jstat -gccause {pid} 5s
我看到這是來自顯式調用System.gc()。我試圖追查什麼代碼調用System.gc(),因爲我懷疑這是發生在我的一個依賴關係中,而不是我自己的代碼。
我知道我可以通過-XX:-DisableExplicitGC禁用顯式的GC調用,但我需要弄清楚調用來自哪裏。我已閱讀here和here,this guy能夠在調用gc()時更改Runtime類以記錄堆棧跟蹤。但我不清楚如何做到這一點。有人能指引我朝着正確的方向嗎?
彼得闡述瞭如何做到這一點的http://stackoverflow.com/a/6870907/367273 – NPE 2013-04-11 20:12:31