文档章节

jdk自带分析vm工具(jdk 5.0以上版本)

王大叔爱编程
 王大叔爱编程
发布于 2014/07/09 10:36
字数 1235
阅读 325
收藏 14

精选30+云产品,助力企业轻松上云!>>>

一、概述 

    SUN 的JDK中的几个工具,非常好用。秉承着有免费,不用商用的原则。以下简单介绍一下这几种工具。(注:本文章下的所有工具都存在JDK5.0以上版本的工具集里,同javac一样,不须特意安装)  。
     
    我一共找到以下四个工具:重点看看jconsole和jmap。

Java代码  收藏代码

  1. jps  

    与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。   

  2. jstat  

    一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。  

  3. jmap

        打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。 

    4.console 

    一个java GUI监视工具,可以以图表化的形式显示各种数据。并可通过远程连接监视远程的服务器VM。  

 

二、 使用介绍: 
     
    1、jps:我想很多人都是用过unix系统里的ps命令,这个命令主要是用来显示当前系统的进程情况,有哪些进程,及其 id。 jps 也是一样,它的作用是显示当前系统的java进程情况,及其id号。我们可以通过它来查看我们到底启动了几个java进程(因为每一个java程序都会独 占一个java虚拟机实例),和他们的进程号(为下面几个程序做准备),并可通过opt来查看这些进程的详细启动参数。 
    使用方法:在当前命令行下打 jps(需要JAVA_HOME,没有的话,到改程序的目录下打) 。

可惜没有linux下的ps好用,名称不好用。但是在第四个工具jconsole的界面里面会有具体JAR包的名称。
     
    2、jstat:对VM内存使用量进行监控。 
    jstat工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id,和所选参数。以下详细介绍各个参数的意义。 
    jstat -class pid:显示加载class的数量,及所占空间等信息。 
    jstat -compiler pid:显示VM实时编译的数量等信息。 
    jstat -gc pid:可以显示gc的信息,查看gc的次数,及时间。其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。 
    jstat -gccapacity:可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小,如:PGCMN显示的是最小perm的内存使 用量,PGCMX显示的是perm的内存最大使用量,PGC是当前新生成的perm内存占用量,PC是但前perm内存占用量。其他的可以根据这个类推, OC是old内纯的占用量。 
    jstat -gcnew pid:new对象的信息。 
    jstat -gcnewcapacity pid:new对象的信息及其占用量。 
    jstat -gcold pid:old对象的信息。 
    jstat -gcoldcapacity pid:old对象的信息及其占用量。 
    jstat -gcpermcapacity pid: perm对象的信息及其占用量。 
    jstat -util pid:统计gc信息统计。 
    jstat -printcompilation pid:当前VM执行的信息。 
    除了以上一个参数外,还可以同时加上 两个数字,如:jstat -printcompilation 3024 250 6是每250毫秒打印一次,一共打印6次,还可以加上-h3每三行显示一下标题。 
     
   3、jmap 是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。使用方法 jmap -histo pid。如果连用 SHELL jmap -histo pid>a.log可以将其保存到文本中去(windows下也可以使用),在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。 jmap -dump:format=b,file=f1 3024可以将3024进程的内存heap输出出来到f1文件里。 
     
    4、jconsole是一个用java写的GUI程序,用来监控VM,并可监控远程的VM,非常易用,而且功能非常强。由于是GUI程序,这里就不详细介绍了,不会的地方可以参考SUN的官方文档。 
    使用方法:命令行里打 jconsole,选则进程就可以了。 
     
    友好提示:windows查看进程号,由于任务管理器默认的情况下是不显示进程id号的,所以可以通过如下方法加上。ctrl+alt+del打开任务管 理器,选择‘进程’选项卡,点‘查看’->''选择列''->加上''PID'',就可以了。当然还有其他很好的选项。

 

三、参考资料:

    article:http://elf8848.iteye.com/blog/442806


    jps:http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jps.html 


    jstat:http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jstat.html 


    jmap:http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jmap.html 


    jconsole:http://java.sun.com/j2se/1.5.0/docs/guide/management/jconsole.html       


王大叔爱编程

王大叔爱编程

粉丝 33
博文 111
码字总数 61053
作品 0
成都
程序员
私信 提问
加载中
请先登录后再评论。
linux(center OS7)安装JDK、tomcat、mysql 搭建java web项目运行环境

一、安装JDK 1.卸载旧版本或者系统自带的JDK (1)列出所有已安装的JDK (2)卸载不需要的JDK 2.下载并解压JDK (1)下载安装包 进入到/usr/local目录下新建java目录 在Java目录下使用wget指...

osc_ur9mmbck
06/21
10
0
linux(center OS7)安装JDK、tomcat、mysql 搭建java web项目运行环境

一、安装JDK 1.卸载旧版本或者系统自带的JDK (1)列出所有已安装的JDK (2)卸载不需要的JDK 2.下载并解压JDK (1)下载安装包 进入到/usr/local目录下新建java目录 在Java目录下使用wget指...

ℕacos
06/20
0
0
JVM活学活用——调优工具

概述    工具做为图形化界面来展示更能直观的发现问题,另一方面一些耗费性能的分析(dump文件分析)一般也不会在生产直接分析,往往dump下来的文件达1G左右,人工分析效率较低,因此利用...

诸葛西门
2018/04/04
0
0
[jvm]七调优工具介绍

花了一些时间整理了一些关于jvm的介绍文章,到现在回顾起来还是一些还没有补充全面,其中就包括如何利用工具来监控调优前后的性能变化。工具做为图形化界面来展示更能直观的发现问题,另一方面...

菜鸟腾飞
2018/12/02
0
0
Java虚拟机(六):JVM调优工具

工具做为图形化界面来展示更能直观的发现问题,另一方面一些耗费性能的分析(dump文件分析)一般也不会在生产直接分析,往往dump下来的文件达1G左右,人工分析效率较低,因此利用工具来分析j...

osc_y8k7fox4
2018/08/03
38
0

没有更多内容

加载失败,请刷新页面

加载更多

将博客搬至CSDN

搬家说明 本人已经即将吧博客搬迁到CSDN,地址为https://blog.csdn.net/wyn_365 开源中国很好,但是博客记录功能还是较少的。

wyn-365
50分钟前
24
0
国产存储芯片现状如何?

美光科技在6月29日(本周一)公布了第三季度的财报,美光首席执行官Sanjay Mehrotra指出:“展望2020下半年的市场趋势,有三个关键点。首先,希望数据中心的前景广阔;第二,希望智能手机和消...

osc_tgsn1w46
50分钟前
7
0
gps时钟同步器(卫星时钟方式器)在DCS控制系统应用

gps时钟同步器(卫星时钟方式器)在DCS控制系统应用 gps时钟同步器(卫星时钟方式器)在DCS控制系统应用 安徽京准电子提供,技术交流官微(ahjzsz) 前言 随着计算机和网络通信技术的飞速发展...

osc_zx0inizr
52分钟前
14
0
Qt5.9 5.12等高版本的安装问题

Qt5.9之后的版本,安装时需要登陆,不然无法next,因此在安装时建议先断网,next之后可以把网络再连上,不管是windows还是mac都有这种现象。

osc_ohsup7nf
54分钟前
5
0
Go 语言编程 — go 指令

目录 文章目录 目录 go 指令 go run 试运行 go build 编译 go install 安装 go get 下载并安装 go test 测试 go env 环境变量 go fmt 格式化源代码 go 指令 Golang 本身就是一个程序,包含了...

osc_7wfxe2gv
55分钟前
25
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部