jdk自带的工具所占内存都很小,这是由于他们只是引用了tools.jar包里面的类,这么做有利于在应用程序中调用这些类,进行性能监控。
1、jps
类似于任务管理器,作用是找出java进程的唯一标识符,LVMID(和操作系统中的PID是相等的)。不过操作系统并不能让我们区分出哪个PID对应哪个类,但是jps可以。
jps -l 显示类信息
详细显示
11840 sun.tools.jps.Jps // 就是jps本身
15500 // eclipse
6556 cn.itcast.test.HeapOOm // 一个进程
9996 cn.itcast.test.Main2 // 又一个进程
jps -m 查看输入main方法的参数
输出函数传入的参数(命令行带的参)也可以在Run Configurations里面加
jps -v 查看虚拟机参数
这里能看出默认采用G1收集器、堆内存。
2、jstat
用于查看某个进程的类装在、内存、垃圾收集、jit编译的信息。因此首先需要知道进程号。
我们查看下eclips,具体参数可以查看官方文档
jstat 进程号 间隔时间 次数
监控eclpise程序运行的过程,效果是这样的。
3、jinfo:查看和修改虚拟机配置信息
jinfo -flag +UseSerialGC 5316 : 对于某个进程启用SerialGC