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
大 线程递归调用能够很深
小 线程并发数量能够特别多