這就是GC如何充滿詳細GC啓用貌似更大 -Java垃圾收集「真正」的時間比「用戶」 +「系統」
13463.547: [Full GC [PSYoungGen: 323053K->0K(325952K)]
[PSOldGen: 653170K->331738K(655360K)] 976224K->331738K(981312K)
[PSPermGen: 238715K->238715K(264448K)], 385.4631490 secs]
[Times: user=2.19 sys=1.35, real=385.50 secs]
實時怎麼能比用戶這麼多的大+ sys?
我的第一個想法是垃圾收集器正在等待資源,但這個資源似乎不是IO或CPU,因爲當發生gc時,「top」輸出不顯示任何cpu或內存問題。
如果它不在IO上等待並且它不受CPU限制,那麼我唯一能想到的其他事情就是等待信號量/互斥量,或者真的非常慢地訪問內存。 – Jonathan
你在你的應用中使用JNI嗎?你的堆的大小是多少,你有多少物理RAM? – Ron
Xmx = 960 Mb,RAM = 4GB我們使用JNI但不是太頻繁,JNI如何影響垃圾收集? –