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

JDK的几种分析工具

2009-10-10 19:26 274 查看
学习了一下JDK中的一些自带系统性能分析工具。

在jdk的bin目录下,jconsole,jstack、jmap、jstat、jhat

jconsole
是监视和管理工具。可以查看堆内存,线程,类,CPU状况。直接双击就可以启动了,然后选择连接本地local还是远程remote,分析结果就出现在界面上了。当然也可以从命令行启动界面。

jstack
主要用于线程死锁的监控。

命令行中输入jstack -h查看用法

C:/Program Files (x86)/Java/jdk1.6.0_14/bin>jstack -h

Usage:

jstack [-l] <pid>

(to connect to running process)

Options:

-l long listing. Prints additional infor

-h or -help to print this help message

pid 进程号

jmap
主要用于监控内存泄露时候对象占用的字节数。

命令行中输入jmap -h查看用法

C:/Program Files (x86)/Java/jdk1.6.0_14/bin>jmap -h

Usage:

jmap -histo <pid>

(to connect to running process and print histogram of java object heap

jmap -dump:<dump-options> <pid>

(to connect to running process and dump java heap)

dump-options:

format=b binary default

file=<file> dump heap to <file>

Example: jmap -dump:format=b,file=heap.bin <pid>

jstat
主要用于监控jvm的gc使用情况。

命令行中输入jstat -h查看用法

C:/Program Files (x86)/Java/jdk1.6.0_14/bin>jstat -h

-h requires an integer argument

Usage: jstat -help|-options

jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]

Definitions:

<option> An option reported by the -options option

<vmid> Virtual Machine Identifier. A vmid takes the following form:

<lvmid>[@<hostname>[:<port>]]

Where <lvmid> is the local vm identifier for the target

Java virtual machine, typically a process id; <hostname> is

the name of the host running the target Java virtual machine;

and <port> is the port number for the rmiregistry on the

target host. See the jvmstat documentation for a more complete

description of the Virtual Machine Identifier.

<lines> Number of samples between header lines.

<interval> Sampling interval. The following forms are allowed:

<n>["ms"|"s"]

Where <n> is an integer and the suffix specifies the units as

milliseconds("ms") or seconds("s"). The default units are "ms".

<count> Number of samples to take before terminating.

-J<flag> Pass <flag> directly to the runtime system.

pid 进程号,interval时间间隔,count次数

jhat
主要用于分析jmap产生的dump并提供web页面查看分析结果。

命令行中输入jhat -h查看用法

C:/Program Files (x86)/Java/jdk1.6.0_14/bin>jhat -h

Usage: jhat [-stack <bool>] [-refs <bool>] [-port <port>] [-baseline <file>] [-

debug <int>] [-version] [-h|-help] <file>

-J<flag> Pass <flag> directly to the runtime system. For

example, -J-mx512m to use a maximum heap size of 512MB

-stack false: Turn off tracking object allocation call stack.

-refs false: Turn off tracking of references to objects

-port <port>: Set the port for the HTTP server. Defaults to 7000

-exclude <file>: Specify a file that lists data members that should

be excluded from the reachableFrom query.

-baseline <file>: Specify a baseline object dump. Objects in

both heap dumps with the same ID and same class will

be marked as not being "new".

-debug <int>: Set debug level.

0: No debug output

1: Debug hprof file parsing

2: Debug hprof file parsing, no server

-version Report version number

-h|-help Print this help and exit

<file> The file to read

For a dump file that contains multiple heap dumps,

you may specify which dump in the file

by appending "#<number>" to the file name, i.e. "foo.hprof#3".

All boolean options default to "true"

jhat filename.bin //就可以分析产生的dump文件,可以通过访问http://localhost:7000

IBM的堆分析工具HeapAnalyzer
http://www.alphaworks.ibm.com/tech/heapanalyzer
)。堆的dump log的视图化查看工具。

TDA - Thread Dump Analyzer
(https://tda.dev.java.net/
)。线程dump的视图化查看工具。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: