我目前正在運行一個應用程序,它需要最大堆大小爲16GB。應用程序中的長GC暫停
目前我使用下面的選項來處理垃圾收集。
-XX\:+UseParNewGC, -XX\:+UseConcMarkSweepGC, -XX:CMSInitiatingOccupancyFraction=50, -XX\:+DisableExplicitGC, -XX\:+PrintGCDateStamps, -XX\:+PrintGCDetails, -Xloggc\:/home/user/logs/gc.log
然而,我注意到,在一些垃圾收集,應用程序鎖定了幾秒鐘,然後進行 - 這是完全不能接受的,因爲它是一個遊戲服務器。
的使出從我的垃圾收集日誌可以發現here。
什麼,我應該爲了減少這些長暫停更改的任何意見,將不勝感激。
我相信這就是爲什麼很多人喜歡C++對Java的實時遊戲的原因之一。但不要拿*我的*字...... – Mysticial
你可以提供一些具有長期gc暫停的特定行嗎?而不是期望讀者通過日誌文件尋找 – noahlz
行,我更喜歡使用超過1 GB的堆內存。關閉堆內存更難編碼,但對GC暫停時間影響不大。 –