與串行收集器相關(guān)的參數(shù)
-XX:+ UseSerialGC: 在新生代和老年代使用串行收集器
-XX: SurvivorRatio: 設(shè)置 eden 區(qū)大小和 survivior 區(qū)大小的比例。
?-XX: PretenureSizeThreshold: 設(shè)置大對象直接進(jìn)入老年代的閾值。 當(dāng)對象的大小超過這個值時, 將直接在老年代
-XX: MaxTenuringThreshold: 設(shè)置對象進(jìn)入老 年代的年齡的最大值。 每一 次MinorGC后, 對象年齡 就加1。任何 大于這個年齡的對象, 一定會進(jìn)入老年代。
與并行收集器相關(guān)的參數(shù)
-XX:+ UseParNewGC: 在新生代使用并行收集器。
-XX:+ UseParallelOldGC: 老年代使用并行回收收集器。
-XX: ParallelGCThreads: 設(shè)置用于垃圾回收的線程數(shù)。 通過情況下可以和CPU數(shù)量相等, 但在 CPU 數(shù)量比較多的情況下, 設(shè)置相對較小的數(shù)值也是合理的。
-XX: MaxGCPauseMillis: 設(shè)置最大垃圾收集停頓時間。它的值是一 個大 于 0 的整數(shù)。 收集器在工作時, 會調(diào)整 Java 堆大小或者其他一些參數(shù), 盡可能地把停頓停頓時間控制在MaxGCPauseMillis 以內(nèi)。
-XX: GCTimeRatio: 設(shè)置吞吐量大小。 它的值是 一個 0 到 100 之間的整數(shù)。 假設(shè) GCTimeRatio 的 值 為 n, 那么系統(tǒng)將花費(fèi) 不超過 1/( 1+ n) 的 時間用于垃圾收集。
-XX:+ UseAdaptiveSizePolicy: 打開自適應(yīng) GC 策略。 在這種模式 下, 新生代的大小、 eden 和 survivior 的比例、 晉升老年代的對象年齡等參數(shù)會被自動調(diào)整, 以達(dá)到在堆大小、吞吐量和停頓時間之間的平衡點(diǎn)
與 CMS 收集器相關(guān)的參數(shù)
-XX:+UseConcMarkSweepGC:新生代使用并行收集器,老年代使用CMS+串行收集器。
-XX:ParallelCMSThreads:設(shè)定CMS的線程數(shù)量。
-XX:CMSInitiatingOccupancyFraction:設(shè)置CMS收集器在老年代空間被使用多少后觸發(fā),默認(rèn)為68%。(92%)
-XX:+UseCMSCompactAtFullCollection:設(shè)置CMS收集器在完成垃圾收集后是否要進(jìn)行一次內(nèi)存碎片的整理。
-XX:CMSFullGCsBeforeCompaction:設(shè)定進(jìn)行多少次CMS垃圾回收后,進(jìn)行一次內(nèi)存壓縮。
-XX:+CMSClassUnloadingEnabled:允許對類元數(shù)據(jù)區(qū)進(jìn)行回收。
-XX:CMSInitiatingPermOccupancyFraction:當(dāng)永久區(qū)占用率達(dá)到這一百分比時,啟動CMS回收(前提是-XX:+CMSClassUnloadingEnabled激活了)。
-XX:+CMSIncrementalMode:使用增量模式,比較適合單CPU。增量模式在JDK8中標(biāo)記為廢棄,并且將在JDK9中徹底移除。
與 G1回收器相關(guān)的參數(shù)
-XX:+UseG1GC:使用G1回收器。
-XX:MaxGCPauseMillis:設(shè)置最大垃圾收集停頓時間。
-XX:GCPauseIntervalMillis:設(shè)置停頓間隔時間。
TLAB 相關(guān)
-XX:+UseTLAB:開啟TLAB分配。
-XX:+PrintTLAB:打印TLAB相關(guān)分配
-XX:TLABSize:設(shè)置TLAB大小。
-XX:+ResizeTLAB:自動調(diào)整TLAB大小。