java jvm 记录(一)_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java jvm 记录(一)

java jvm 记录(一)

 2015/2/26 19:33:44  flowaters  程序员俱乐部  我要评论(0)
  • 摘要:在第一篇中,我们来介绍查看jvm运行状态的一些工具。jpsjps用来查看当前系统中运行的java程序jps,使用默认参数的话,直接显示出java程序的pid(即vmid)和运行的程序名称。jps,使用-v参数,显示传入到jvm的参数.jcmdjcmd是jdk7中提供的新工具,可以获得比jps更多的信息.jcmd,使用默认参数,显示pid和类名称(或者jar名称)jcmd中最重要的是,使用jcmdpidhelp,可以查看jvm中允许jcmd获取哪些信息.如下面例子中,也可以直接使用类名称
  • 标签:Java JVM
在第一篇中,我们来介绍查看jvm运行状态的一些工具。

jps

jps用来查看当前系统中运行的java程序

jps, 使用默认参数的话,直接显示出java程序的pid(即vmid)和运行的程序名称。



jps, 使用-v参数,显示传入到jvm的参数.



jcmd
jcmd是jdk7中提供的新工具, 可以获得比jps更多的信息.

jcmd, 使用默认参数, 显示pid和类名称(或者jar名称)


jcmd中最重要的是,使用jcmd pid help,可以查看jvm中允许jcmd获取哪些信息. 如



下面例子中,也可以直接使用类名称(或者jar名称)来代替pid来执行. 即下面三行的执行效果是一样的.

jcmd example.jar help
jcmd path/example.jar help
jcmd pid help


例如:1. 显示VM版本
jcmd pid VM.version


例如:2. 显示系统信息
jcmd pid VM.system_properties


例如:3. 显示GC相关参数
jcmd pid VM.flags


例如:4. 显示vm工作时间
jcmd pid VM.uptime


例如:5. 显示类柱形图
jcmd pid GC.class_histogram > histo.txt
这里和jmap -histo pid的效果是一样的.


例如: 6. 显示全部vm性能相关的参数
jcmd pid PerfCounter.print


例如:7. 显示所有线程的java栈信息
jcmd pid Thread.print
这里和jstack -l pid的效果是一样的。

这里和下面的例子就不再附图了. 可以自己尝试.

例如:8. dump出HPROF格式的内存信息, 保存到/tmp/dump.bin文件中. 这里文件名要使用绝对路径. 如果使用相对路径,会保存到pid进程运行时所在的目录中.
jcmd pid GC.heap_dump /tmp/dump.bin

例如:9. 执行一次finalization操作,相当于执行java.lang.System.runFinalization()
jcmd pid GC.run_finalization


例如:10. 执行一次Full gc操作, 相当于执行java.lang.System.gc()
jcmd pid GC.run

参考文献:
1. Java SE 7: Reviewing JVM Performance Command Line Tools
发表评论
用户名: 匿名