性能与压力测试
@[toc]
一、性能监控
1、jvm内存模型
程序计数器 Program Counter Register:
记录的是正在执行的虚拟机字节码指令的地址
此内存区域是唯一一个在JAVA虚拟机规范中没有规定任何OutOfMemoryError的区域
虚拟机栈 VMStack:
2、堆
所有的对象实例以及数组都要在堆上分配。堆是垃圾收集器管理的主要区域,也被称为"GC堆”;也是我们优化最多考虑的地方。堆可以细分为:
新生代
Eden空间
From Survivor空间
To Survivor空间
老年代
永久代/元空间
Java8以前永久代,受jvm管理, java8以后元空间,直接使用物理内存。因此,默认情况下,元空间的大小仅受本地内存限制。
垃圾回收
从Java8开始, Hotspot已经完全将永久代(Permanent Generation)移除,取而代之的是个新的区域一元空间(MetaSpace)
3、jconsole与jvisualvm
JDK 的两个小工具 jconsole、jvisualvm(升级版的jconsole) ;通过命令行启动,可监控本地和远程应用。远程应用需要配置
jconsole:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1、jvisualvm能干什么
监控内存泄露,跟踪垃圾回收,执行时内存、cpu分析,线程分析
启动jvisualvm:
在这里插入图片描述
在这里插入图片描述
监控内存泄露,跟踪垃圾回收,执行时内存、cpu分析:
在这里插入图片描述
线程分析:
在这里插入图片描述
运行: 正在运行的
休眠: sleep
等待: wait
驻留: 线程池里面的空闲线程
监视: 阻塞的线程,正在等待锁
2、安装插件方便查看 GC
cmd启动 jvisualvm
工具→插件
在这里插入图片描述
在这里插入图片描述
安装完插件需要重启 jvisualvm
`在这里插入图片描述