vm-all-2-堆

[复制链接]
发表于 2025-3-23 01:16:13 | 显示全部楼层 |阅读模式

什么是堆

变量和堆的关系

image.png

image.png

image.png

image.png

image.png

对象与栈和堆的关系

image.png

image.png

image.png

短命对象和长命对象

image.png

分代模型 年轻代和老年代

年轻代存短命对象,老年代存长命对象

image.png

基于参数设置jvm内存空间

查看堆的内存空间

image.png

image.png

image.png

基于jmap剖析堆的内部结构

image.png

image.png

image.png

读懂gc日志

image.png

-Xms30M
-Xmx30M
-XX:+PrintGCDetails 输出gc详细日志
-XX:+PrintHeapAtGC  打印出触发GC之前和之后的日志

设置堆大小30M,年轻代10M 老年代20M 方法区默认20M

image.png

image.png

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

image.png
GC前后的堆

image.png

image.png

image.png

image.png

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

image.png

image.png

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

image.png

image.png

image.png

yongGC是eden区和from空间不足就会yongGC

性能分析:每秒1000并发的商品服务的jvm该设置多少内存

image.png

image.png

image.png

image.png

image.png

image.png

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

image.png

image.png

image.png

image.png

image.png

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

GMT+8, 2025-4-20 18:38 , Processed in 0.067727 second(s), 35 queries Archiver|手机版|小黑屋|Attic ( 京ICP备2020048627号 )

快速回复 返回顶部 返回列表