class 文件 加載-驗證-準備-解析-初始化-使用-卸載 一個線程一個棧,一個方法一個棧幀java
標記清除(缺點:內存碎片化,沒有連續的內存)git
Copying (缺點:浪費內存 通常用在新生代[new])github
標記壓縮 (比copying慢一點 通常用在老年代[tenured])算法
new多線程
old併發
瞭解一下上一篇《垃圾收集器》jvm
不開逃逸分析不會先分配在棧上
棧上分配.net
線程本地分配TLAB(Thread Locla Allacation Buffer)在堆上也是eden區,這樣作的目的是有一部分數據能夠不加鎖線程
老年代code
eden
堆:
-XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=tmp/jvm.dump -XX:PrintGCDetails
-Xms10M -Xmx10M 直接調大最大,避免中途分析和垃圾回收的計算
棧 +Xss128k
大 線程遞歸調用能夠很深
小 線程併發數量能夠特別多