java基础四---jdk内置工具的使用

0x01 JPS的使用

JPS是jdk内置工具,主要用来查看java进程以及机器上的所有jvm实例,默认连接端口为1099

jps  <hostid>:      <hostname>[:<port>]

image

-q 只显示pid,不显示class名称,jar文件名和传递给main 方法的参数

image

-m 输出传递给main 方法的参数,在嵌入式jvm上可能是null

image

-l 输出应用程序main class的完整package名 或者 应用程序的jar文件完整路径名

image

-v 输出传递给JVM的参数

image

0x02 jinfo的使用

jinfo观察运行中的java程序的运行环境参数:参数包括Java System属性和JVM命令行参数,一般搭配jsp使用

用法:

jinfo [option] <pid>

jinfo [option] <executable <core>

jinfo [option] [server_id@]<remote server IP or hostname>

参数:
pid   进程号
executable   产生core dump的java executable
core   core file
remote-hostname-or-IP  主机名或ip
server-id    远程主机上的debug server的唯一id
选项:
no option  打印命令行参数和系统属性
-flags  打印命令行参数
-sysprops  打印系统属性
-h  帮助

image

0x03 jstat的使用

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

具体参数如下:

Option Displays
class

用于查看类加载情况的统计

compiler

用于查看HotSpot中即时编译器编译情况的统计

gc

用于查看JVM中堆的垃圾收集情况的统计

gccapacity 用于查看新生代、老生代及持久代的存储容量情况
gccause  用于查看垃圾收集的统计情况(这个和-gcutil选项一样),如果有发生垃圾收集,它还会显示最后一次及当前正在发生垃圾收集的原因。
gcnew

用于查看新生代垃圾收集的情况

gcnewcapacity

用于查看新生代的存储容量情况

gcold

用于查看老生代及持久代发生GC的情况

gcoldcapacity

用于查看老生代的容量

gcpermcapacity

用于查看持久代的容量

gcutil

用于查看新生代、老生代及持代垃圾收集的情况

printcompilation

HotSpot编译方法的统计

参数:  

-t n

        用于在输出内容的第一列显示时间戳,这个时间戳代表的时JVM开始启动到现在的时间(注:在IBM JDK5中是没有这个选项的)。

image

  -h n

        用于指定每隔几行就输出列头,如果不指定,默认是只在第一行出现列头。

vmid  - VM的进程号,即当前运行的java进程号。

interval–间隔时间,单位可以是秒或者毫秒,通过指定s或ms确定,默认单位为毫秒。

image

count-打印次数,如果缺省则打印无数次。

image

不同的统计维度(statOption)及输出说明

-class  类加载情况的统计

列名

说明
Loaded

加载了的类的数量

Bytes

加载了的类的大小,单为Kb

Uploaded

卸载了的类的数量

Bytes

卸载了的类的大小,单为Kb

Time

花在类的加载及卸载的时间

 

-compiler  HotSpot中即时编译器编译情况的统计

列名

说明
Compiled

编译任务执行的次数

Failed

编译任务执行失败的次数

Invalid

编译任务非法执行的次数

Time

执行编译花费的时间

FailedType

最后一次编译失败的编译类型

FailedMethod

最后一次编译失败的类名及方法名

 

-gc   JVM中堆的垃圾收集情况的统计

太多了,以后在补吧

http://docs.oracle.com/javase/1.5.0/docs/tooldocs/share/jstat.html

posted on 2016-05-23 17:05  风之叹息  阅读(338)  评论(0编辑  收藏  举报

导航