JVM性能调优常用的工具
目录:C:\Program Files\Java\jdk1.8.0_191\bin
工具介绍:
名称 | 主要作用 |
jps | 显示当前系统的java进程和id号 |
jstat | 监视虚拟机各种运行状态信息, 如进程中的类装载、内存、垃圾收集、JIT编译等运行参数 |
jinfo | 实时查看和调整虚拟机各项参数 |
jmap | 生成虚拟机的内存转储快照(heap dump文件) |
jhat | 用于分析heap dump文件,它会建立一个HTTP/HTML服务器,让用户可以在浏览器上查看分析结果 |
jstack | 生成虚拟机指定时刻的线程快照(thread dump文件) |
jvisualVM(可视图化查看jvm堆内存的工具)
可以实时监测cpu、堆、类变化
设置JVM参数 (更加详细的介绍可以参考:https://www.cnblogs.com/marcotan/p/4256885.html)
-Xms50m:初始化堆大小为50M
-Xmx100m:最大堆大小为100M
-XX:newSize:年前代大小
-XX:newRatio:年轻代占老年代的大小
-xx:MaxNewSize=1024M 设置年轻代最大值为1024
-XX:+UseSerialGC:使用Serial收集器
代码查看jvm默认收集器
package com.dy.jvm; import java.lang.management.GarbageCollectorMXBean; import java.lang.management.ManagementFactory; import java.util.List; public class JvmTest { public static void main(String[] args) { List<GarbageCollectorMXBean> garbageList = ManagementFactory.getGarbageCollectorMXBeans(); for(GarbageCollectorMXBean g:garbageList) { System.out.println(g.getName()); } } }
得出结果
PS Scavenge
PS MarkSweep
可见:
年轻代采用的是Scavenge收集器
老年代采用的是:CMS收集器
换收集器
java带main函数的文件--> Run as --> Run configurations -->
在VM arguments中写入相应的参数即可