class 文件 加載-驗證-準備-解析-初始化-使用-卸載 一個線程一個棧,一個方法一個棧幀java
標記清除(缺點:內存碎片化,沒有連續的內存)算法
Copying (缺點:浪費內存 通常用在新生代[new])bash
標記壓縮 (比copying慢一點 通常用在老年代[tenured])多線程
new併發
oldjvm
瞭解一下上一篇《垃圾收集器》spa
不開逃逸分析不會先分配在棧上
複製代碼
棧上分配.net
線程本地分配TLAB(Thread Locla Allacation Buffer)線程
老年代code
eden
堆:
-XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=tmp/jvm.dump -XX:PrintGCDetails
-Xms10M -Xmx10M 直接調大最大,避免中途分析和垃圾回收的計算
棧 +Xss128k
大 線程遞歸調用能夠很深
小 線程併發數量能夠特別多
喜歡的能夠關注個人公衆號'java小瓜哥的分享平臺"謝謝!