您的位置:首页 > 编程语言 > Java开发

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

2016-05-23 17:05 495 查看

0x01 JPS的使用

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

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





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





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





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





-v 输出传递给JVM的参数





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 帮助



0x03 jstat的使用

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

具体参数如下:

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

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

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

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

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

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

gcoldcapacity用于查看老生代的容量

gcpermcapacity用于查看持久代的容量

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

printcompilationHotSpot编译方法的统计

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



-h n 用于指定每隔几行就输出列头,如果不指定,默认是只在第一行出现列头。 vmid - VM的进程号,即当前运行的java进程号。 interval–间隔时间,单位可以是秒或者毫秒,通过指定s或ms确定,默认单位为毫秒。

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

不同的统计维度(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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: