JAVA虚拟机系列(五)

来源:互联网 发布:数控机床编程好学吗 编辑:程序博客网 时间:2024/06/13 04:31

大家刚开始接触Java的时候,进行环境的安装以及设置,在进行测试的时候,使用java命令,来查看配置的正确与否,java这个命令对应的便是javabin目录下的可执行文件,平时使用的命令还有javac命令。当然bin目录下有很多这样的命令行,包括一些虚拟机和故障处理的工具,这些工具都非常的稳定且功能强大。虽然这些可执行文件都只有几十到几百K,但这并不包括程序的所有内容,这些命令行工具大多数是jdk/lib/tools.jar类库的一层薄包装而已,它们的主要的功能代码在tools类库中实现。书中的介绍的工具基于Windows平台下的JDK1.6Update12,不同的JDK版本,操作系统不同,工具所支持的功能可能会有较大差别。

1.jps(JVM Process Status Tool)

列出正在运行的虚拟机进程,并显示虚拟机的主类名称,进程的本地虚拟机的唯一ID,对于本地虚拟机进程来说,LVMID与操作系统的进程ID是一致的。

2.jstat(JVM Statistics Monitoring Tool)

用于监视虚拟机各种运行状态信息的命令行工具。可以显示本地或者远程虚拟机进程中的类装载,内存,垃圾收集,JIT编译等运行数据。

3jinfoJVM Configuration Info for Java

用于实时查看和调整虚拟机各项参数,使用jps命令的-v参数可以查看虚拟机启动时显式指定的参数列表,但如果想知道未被显式指定的参数的系统默认值,除了找资料外,只能使用jinfo-flag选项进行查询了。

4.jmapJVM Memory Map for Java

用于生成堆转储快照(一般称为heapdumpdump文件),它的作用不仅仅是为了获取dump文件,它还可以查询finalize执行队列,Java堆和永久代的详细信息,例如空间利用率,当前用那种收集器。

5.jhat(JVM Heap Analysis Tool)

用来分析jmap的堆转储快照,jhat内置一个微型的HTTP/HTML服务器,生成dump文件的分析结果后,可以在浏览器中查看。在实际工作中,很少用jhat去分析dump文件,原因有下:一是分析dump文件是一个消耗硬件资源的过程,这样会对正在运行的程序造成一定的影响;二是jhat的分析功能相对来说比较简陋。

6jstack(JVM Stack Trace for java)

用于生成虚拟机当前时刻的线程快照(一般称为javacore文件),线程快照是当前虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的目的是定位线程出现长时间停顿的原因,如线程间死锁,死循环。

JDK的可视化工具

1.JConsole

是一种基于JMX的可视化监视管理的工具,它管理部分的功能是针对JMX MBean进行管理,由于MBean可以使用代码,中间件服务器的管理控制台或者所有符合JMX规范的软件进行访问。

2.VisualVM

功能强大的运行监视和故障处理程序,它的优点:不需要被监视的程序基于特殊Agent运行,因此它对应用程序的实际性能的影响很小使用它可以直接应用在生产环境中。

对于这两个可视化工具的具体操作,书中有详细的介绍,也可以上网搜索教程,慢慢摸索。

原创粉丝点击