我有一個程序,它從磁盤上讀取許多文件(混合PDF通常低於10 MB + Kb的XML大小),並將它們一次上傳到舊版系統中。週末時,我讓它在visualvm下運行,今天早上我回到了一個圖表,顯示在程序運行的小時內,堆的使用情況非常不均勻。我期望隨着時間的推移,堆的使用量大致相當。瞭解visualvm的堆圖
我尋找這個解釋。這是在Ubuntu 17.04(桌面,非服務器)下的64位Oracle JVM,在4核i5-2400(無超線程)上具有32 GB RAM。該程序基本上是單線程的,利用了核心的大約50%,並花了預期的時間運行。
我明白,如果內存沒有完全使用,它會隨着時間的推移而被釋放。我不明白隨着時間的推移,使用量會下降,因爲負載應該是相當均勻分佈的。我看到系統閒置時CPU節流的結果嗎?某些JVM優化是否在踢?
我不認爲這是一個問題。我正試圖瞭解事物的異常情況(以及爲什麼)能夠識別他們何時不再正常。這是使用JVM的所有默認設置。如果它能得到任何有用的信息,我可以在以後運行gc日誌記錄。你有鏈接到討論這些GC啓發式的好資源嗎? –
[tag:garbage-collection]標籤[wiki](https://stackoverflow.com/tags/garbage-collection/info)有鏈接到一些資源 – the8472