首页 > 代码库 > Java自带优秀工具2

Java自带优秀工具2

Jconsole

是原生java自带的系统monitor工具,可以连接本地也可以连接远端的java process,连接java process之后可以查看应用的CPU,内存,线程数,GC情况,可以帮忙查看系统是否有死锁的现象,还可以查看MBean export出来的系统接口和数据。不过我现在比较少用它了,因为有了jvisualvm。


jvisualvm

jvisualvm原本是要钱的工具,自从1.6整到jdk里面之后,幸福了我。有了jvisualvm,在图形界面条件允许的情况下,对系统性能调优,基本不需要其他工具了,也不用为系统性能调优写overload的 AOP monitor代码。随时可以动态查看系统的性能。它比jconsole些,观察的数据更详细。

配好java环境变量之后,在console中输入jvisualvm,就可以打开jvisualvm的界面,左边有自动detect出来的所有java process,当然也可以连接远端process,双击要monitor的process,在监视标签页中可以看CPU,内存,线程,类的使用情况,执行垃圾回收,dump内存等,在线程标签页中时间线可以看到所有线程的动态状态图,图可以看到具体线程运行状况,抽样器可以看到每个方法用了多少时间,甚至是多少是执行时间,多少是等待时间,也可以看到每个线程的时间状况,默认的jvisualvm是看不了mbean的信息,可以通过安装mbean的插件看mbean的信息,还可以通过gc插件看gc的详细信息。通过工具-》插件-》可用插件 安装自己想要的插件,如果在可用插件里面看不到任何信息,要注意代理是否有配置 --》通过工具-》选项来设置网络代理,插件的相关配置也会在选项里面配置。

到现阶段位置,jvisualvm已经可以非常方便查看系统运行情况,而且对性能影响非常小(可以通过打开jvisualvm和不打开jvisualvm的情况下进行压力测试验证)。如果觉得这些信息还不够对系统调优,jvisualvm的profiler提供了更强大的功能,不过对性能影响就比较大了,可以统计每个方法被调用了多少次,方法的调用时间,内存对象分配和gc等的更进一步细节,只建议测试的时候使用。