(本文所提到的演算法請見:
從第二張圖的時間可以看出來,複製演算法的效率要比標記壓縮演算法高的多。
-xx: +useparnewgc (新生代並行,老年代序列)
-xx: +useparallelgc (新生代並行,老年代序列)
-xx: +usepralleloldgc (新生代老年代都是序列)
注意:多執行緒不一定更快,這就跟寫程式一樣,要注意使用場景。
圖示:
注意圖中紅字,psyounggen和paroldgen表示新生代老年代都用的並行收集器,所以此時的gc引數是 -xx: useparalleloldgc。
圖示:
1.g1收集器(garbage-first)是在jdk1.7中正式使用的全新垃圾**器,從長期目標看,它是為了取代cms收集器。從分代上看,g1依然屬於分代垃圾**器,它會區分年輕代和老年代,依然有eden區和survivor區,但從堆的結構上看,它並不要求整個eden區、年輕代和老年代都連續。它使用了分割槽演算法。作為cms的長期替代方案,g1的特點如下:
2.g1的記憶體劃分和主要收集過程
g1收集器將堆進行分割槽,劃分為乙個個的區域,每次收集的時候,只收集其中幾個區域,以此來控制垃圾**產生的一次停頓時間。
g1的收集過程可能有4個階段:
JVM的GC機制及JVM的調優方法
記憶體管理和垃圾 是jvm非常關鍵的點,對j a效能的剖析而言,了解記憶體管理和垃圾 的基本策略非常重要。1.在程式執行過程當中,會建立大量的物件,這些物件,大部分是短週期的物件,小部分是長週期的物件,對於短週期的物件,需要頻繁地進行垃圾 以保證無用對 象盡早被釋放掉,對於長週期物件,則不需要頻率垃...
JVM架構和工作原理及GC工作機制
學習j a,理解弄懂了jvm和gc,對於學習j a開發有很大幫助。借助前人之鑑博文,這裡主要講四個部分 jvm結構 記憶體分配 垃圾 演算法 垃圾收集器 jvm主要包括四個部分 1.類載入器 classloader 在jvm啟動時或者在類執行時將需要的class載入到jvm中。2.執行引擎 負責執行...
JVM引數及常見助記符
jvm引數 我們可以看到新增了final修飾符後的結果並沒有執行靜態 塊的程式,首先我們知道final本身它表示是乙個常量,str的值一旦被賦予之後就不能被改變了,常量在編譯階段就會被存入到呼叫這個常量的那個方法所在的類的常量池當中,在上面的例子看來就是存放到mytest2這個類的常量池,本質上,呼...