Java自带优秀工具

Java自己有很多优秀的调试工具,可以帮助分析系统的漏洞,瓶颈,这里列举几个自己常用的命令:

jps -l

查看现有的java进程

jps -l 显示所有正在运行的java进程id

jstack 

查看Java线程

jstack -l pid; 做thread dump,直接打印在串口

jstack pid>> ./threaddumps  输出到指定文件分析

jmap

查看Java内存使用情况

jmap -histo:live pid 对象占用内存排名

jmap -dump:file=memroydumps pid 把heap dump到文件

jhat 

通过查看jmap dump文件分析

jhat
./threaddumps 分析dump文件

d:\cloudlu\workspace\CustomerSecurityManagementSystem\CustomerSecurityManagementWeb>jmap -dump:file=test.map 6860
Dumping heap to D:\cloudlu\workspace\CustomerSecurityManagementSystem\CustomerSecurityManagementWeb\test.map ...
Heap dump file created

d:\cloudlu\workspace\CustomerSecurityManagementSystem\CustomerSecurityManagementWeb>jhat test.map
Reading from test.map...
Dump file created Wed Jun 04 10:49:22 CST 2014
Snapshot read, resolving...
Resolving 1982196 objects...
Chasing references, expect 396 dots.........................................................................................................
............................................................................................................................................
............................................................................................................................................
...........
Eliminating duplicate references............................................................................................................
............................................................................................................................................
............................................................................................................................................
........
Snapshot resolved.
Started HTTP server on port 7000
Server is ready.

http://localhost:7000 查看分析结果

jstat

查看heap内各个部分的使用量,以及加载类的数量以及GC的相关信息。

jstat
-options (查看参数) / jstat -help

jstat -gcutil -t -h 3 6860 200 10
Timestamp         S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT
         2930.6   0.00   0.00  31.53  60.00  91.23  82.55     80    1.622     5    6.644    8.266
         2930.8   0.00   0.00  31.53  60.00  91.23  82.55     80    1.622     5    6.644    8.266
         2931.0   0.00   0.00  31.53  60.00  91.23  82.55     80    1.622     5    6.644    8.266
Timestamp         S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT
         2931.2   0.00   0.00  31.53  60.00  91.23  82.55     80    1.622     5    6.644    8.266
         2931.4   0.00   0.00  31.53  60.00  91.23  82.55     80    1.622     5    6.644    8.266
         2931.6   0.00   0.00  31.53  60.00  91.23  82.55     80    1.622     5    6.644    8.266
Timestamp         S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT
         2931.8   0.00   0.00  31.53  60.00  91.23  82.55     80    1.622     5    6.644    8.266
         2932.0   0.00   0.00  31.53  60.00  91.23  82.55     80    1.622     5    6.644    8.266
         2932.2   0.00   0.00  31.53  60.00  91.23  82.55     80    1.622     5    6.644    8.266
Timestamp         S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT
         2932.4   0.00   0.00  31.53  60.00  91.23  82.55     80    1.622     5    6.644    8.266

jdk自带的hprof

启动应用时带上hprof参数,查看cpu,内存使用情况

java -agentlib:hprof=cpu=times,interval=20,depth=10 -jar start.jar

http://www.cnblogs.com/linhaohong/archive/2012/07/12/2588657.html

Jconsole&Jvisualvm

下回分解

Java自带优秀工具

时间: 2024-12-21 00:46:18

Java自带优秀工具的相关文章

Java自带优秀工具2

Jconsole 是原生java自带的系统monitor工具,可以连接本地也可以连接远端的java process,连接java process之后可以查看应用的CPU,内存,线程数,GC情况,可以帮忙查看系统是否有死锁的现象,还可以查看MBean export出来的系统接口和数据.不过我现在比较少用它了,因为有了jvisualvm. jvisualvm jvisualvm原本是要钱的工具,自从1.6整到jdk里面之后,幸福了我.有了jvisualvm,在图形界面条件允许的情况下,对系统性能调优

java自带命令工具

jstat,这个工具很强大,可以监测Java虚拟机GC多方面的状态,具体参数含义参见此链接: ./jstat -gc 84012 1000 3 S0C    S1C    S0U    S1U      EC       EU        OC         OU       PC     PU    YGC     YGCT    FGC    FGCT     GCT 2112.0 2112.0  0.0    0.0   17024.0    0.0     63872.0     1

5个最优秀的Java和C#代码转换工具

http://www.codeceo.com/article/5-java-csharp-convert-tools.html 毋庸置疑,Java是一门最受欢迎而且使用最广泛的编程语言,目前有超过9百万的Java开发者从事web服务的开发,Java以“编写一次,可在任何地方运行”而著称,同时这也是其大受欢迎的主要原因. 和Java类似,C#也是一门拥有很多现代化特性的编程语言,很多开发者处于其安全性和稳定性,会选择C#这个平台.本文介绍了几个最优秀的Java和C#代码转换工具,希望对开发者有所帮

java自带工具-jps、jinfo、jstack、jstat、jmap

掌握java自带的这些监控工具,有助与我们很好的分析问题和jvm性能调优秀.收集了些网上整理很好的文章. Java监控工具.调优.调试辅助函数 Java自带的GUI性能监控工具Jconsole以及JisualVM简介 JDK自带监控工具

java自带的jvm分析工具

http://domark.iteye.com/blog/1924302 这段时间觉得很有必要对java的内存分析工具进行熟悉,这样以后出现机器负载较高,或者反应很慢的时候,我就可以查找原因了.上网搜了搜,发现下面这些是比较常用的,然后我在机器上试试了,把结果也贴出来哈. 1.jps 类似ps -ef|grep java 显示java进程号 或者pgrep java2.jstack 打印jvm内存的堆栈信息,打印出来的结果类似 2010-04-21 20:10:51 Full thread du

java两种序列化(hessian与java自带)性能实验分析报告

序列化的5w2h分析 what:序列化是一种将java对象流化的机制 how:将一个实现了Serializable接口的对象的状态写入byte[],传输到另外一个地方,将其读出进行反序列化得对象(含状态).状态就是类中的属性是含有值的. why:方便对象在网络间进行传播,并且可以随时把对象持久化到数据库.文件等系统里 when:对象需要远程过程调用,缓存到文件或DB中(hessian,rmi,ejb) where:发送接口处,写入文件的入口处 who:发送端序列化,接收端反序列化 how muc

java 性能调优工具

1.jstack 用法jstack [option] pid -l long listings,会打印出额外的锁信息,在发生死锁时可以用jstack -l pid来观察锁持有情况 -m mixed mode,不仅会输出Java堆栈信息,还会输出C/C++堆栈信息(比如Native方法) 找出进程内最耗费CPU的线程,可以使用ps -Lfp pid或者ps -mp pid -o THREAD, tid, time或者top -Hp pid printf "%x\n" pid 得到pid的

Spark的Straggler深入学习(1):如何在本地图形监控远程Spark的GC情况——使用java自带的jvisualvm

一.本文的目的 Straggler是目前研究的热点,Spark中也存在Straggler的问题.GC问题是总所周知的导致Straggler的重要因素之一,为了了解GC导致的Straggler问题,首先需要学习GC问题以及如何监控Spark的GC.GC问题的讨论比较多了,推荐一篇系列文章用于学习:成为Java的GC专家. 二.本文所需工具 本文所需工具很简单,基本不用下载.监控GC的前提是: 1.已经在集群上安装了Spark并可以正常提交作业: 2.本地装有jdk1.6以上版本. 本文实际使用的工

Java 自带MD5 校验文件

http://www.iteye.com/topic/1127319 前天第一次发表博客到论坛,关于Java文件监控一文,帖子地址在:http://www.iteye.com/topic/1127281 评论的朋友很多,下载代码的朋友很不少,感谢在论坛上看我帖子的朋友,还有回复评论的朋友,给我提供建议的朋友. 从这些建议中,虽然语言简短,但是却有的是一语中的,这里说一下一下关于帖子的代码中HashFile中的MD5文件校验算法, 该算法是使用Java自带的MessageDigest类,测试结果,