作者最新博客地址:http://www.17mark.com
此簡書不再維護。
此文章只限稍微了解JVM 內存GC機制的書友。
Eden 容量設置:
Eden GC觸發值設置:
-XX:+SuivivorRatio: Eden 區大小和 survivor 區大小的比例
-XX:+PretenureSizeThreshold:設置大對象直接進入老年代的閾值。當對象的大小超過這個值時,將直接在老年代分配。
-XX:MaxTenuringThreshold:設置對象進入老年代的年齡的最大值。每一次 Minor GC 后,對象年齡就加 1。任何大于這個年齡的對象,一定會進入老年代。
-XX:+UseParNewGC: 在新生代使用并行收集器。
-XX:+UseParallelOldGC: 老年代使用并行回收收集器。
-XX:ParallelGCThreads:設置用于垃圾回收的線程數。通常情況下可以和 CPU 數量相等。但在 CPU 數量比較多的情況下,設置相對較小的數值也是合理的。
-XX:MaxGCPauseMills:設置最大垃圾收集停頓時間。它的值是一個大于 0 的整數。
-XX:GCTimeRatio:設置吞吐量大小,它的值是一個 0-100 之間的整數。假設 GCTimeRatio 的值為 n,那么系統將花費不超過 MaxGCPauseMills/(1+n) 的時間用于垃圾收集。 與MaxGCPauseMills相關。
-XX:+UseAdaptiveSizePolicy:打開自適應 GC 策略。在這種模式下,新生代的大小,eden 和 survivor 的比例、晉升老年代的對象年齡等參數會被自動調整,以達到在堆大小、吞吐量和停頓時間之間的平衡點。
-XX:+ParallelCMSThreads: 設定 CMS 的線程數量。
-XX:+CMSInitiatingOccupancyFraction:設置 CMS 收集器在老年代空間被使用多少后觸發,默認為 68%。
-XX:+UseFullGCsBeforeCompaction:設定進行多少次 CMS 垃圾回收后,進行一次內存壓縮。
-XX:+CMSClassUnloadingEnabled: 允許對類元數據進行回收。
-XX:+CMSParallelRemarkEndable:啟用并行重標記。
-XX:CMSInitatingPermOccupancyFraction:當永久區占用率達到這一百分比后,啟動 CMS 回收 (前提是-XX:+CMSClassUnloadingEnabled 激活了)。
-XX:UseCMSInitatingOccupancyOnly:表示只在到達閾值的時候,才進行 CMS 回收。
-XX:+CMSIncrementalMode:使用增量模式,比較適合單 CPU。
常用參數如下:
image
積極迎接各種挑戰,才會使自己更加強大。
此文章參考自:http://blog.csdn.net/antony9118/article/details/51375662
歡迎一起交流,學習。