什么是堆
变量和堆的关系





对象与栈和堆的关系



短命对象和长命对象

分代模型 年轻代和老年代
年轻代存短命对象,老年代存长命对象

基于参数设置jvm内存空间
查看堆的内存空间



基于jmap剖析堆的内部结构



读懂gc日志

-Xms30M
-Xmx30M
-XX:+PrintGCDetails 输出gc详细日志
-XX:+PrintHeapAtGC 打印出触发GC之前和之后的日志
设置堆大小30M,年轻代10M 老年代20M 方法区默认20M



展示回收前后的堆对象大小

GC前后的堆




启动的时候有初始化对象要加载


启动的时候,就必须占用了3351K,3351K是系统自带的。难怪分配了4m 就触发了young gc
接下来思考:3351K是什么对象?采用 jmap -histo:live 命令来查看
;histo:live代表查看当前jvm存活的对



yongGC是eden区和from空间不足就会yongGC
性能分析:每秒1000并发的商品服务的jvm该设置多少内存






性能分析:当你的系统并发量,突然猛增100倍,该如何解决




