词条 | jvisualvm.exe |
释义 | 监控工具VisualVMVisualVM 是Netbeans的profile子项目,已在JDK6.0 update 7 中自带(java启动时不需要特定参数,监控工具在bin/jvisualvm.exe),能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来的)。 在JDK_HOME/bin(默认是C:\\Program Files\\Java\\jdk1.6.0_13\\bin)目录下面,有一个jvisualvm.exe文件,双击打开,从UI上来看,这个软件是基于NetBeans开发的了。 从界面上看还是比较简洁的,左边是树形结构,自动显示当前本机所运行的Java程序,还可以添加远程的Java VM,其中括号里面的PID指的是进程ID。OverView界面显示VM启动参数以及该VM对应的一些属性。Monitor界面则是监控Java堆大小,Permgen大小,Classes和线程数量。Profiler界面比较有趣,看样子似乎可以动态的对某个Java程序进行调优了。不过我没试用这个功能,感觉要调优还是在Netbeans里面比较自然一点,起码有代码,没代码调优了用处也不大。而且这里还有个问题,有些VM是没有Threads跟Profiler界面的,不知道是什么原因,像我截图里面的Weblogic的Server就没有这两个界面。 Sun VisualVM项目 开源Java问题解决方案VisualVM是Sun的一个OpenJDK项目,其目的在于为Java应用创建一个整套的问题解决工具。该工具由几个现有工具和新增功能合并而成的(如jvmstat、JMX、Attach API等)构成。VisualVM可以作为独立应用运行,或者通过其良好的API进行扩展。 在Java SE for Business的特性和优势页面上,VisualVM被描述为可以胜任如下任务的工具: 比以往任何时候都更快更容易地在已部署的应用中追踪导致可靠性、可用性或者可扩展性问题的根源。 根据VisualVM项目站点所述: 该工具的设计目标就是既可以在产品环境下使用,也可以在开发阶段使用,并且进一步加强了对Java SE平台的监控能力和性能分析能力。 在本文写作时,VisualVM 1.0 RC1已经提供下载了,同时根据VisualVM的主要开发者Thomas Hurka所述,官方的1.0版将于2008年夏季发布。它对JDK1.4.2、5.0及6.0都提供了支持,但是对JDK6.0的支持是最大的。一些特性列举如下: 分析 Thread Dump Heap Dump 分析快照 应用快照 当被问到针对其他版本JDK的特性的完善计划时,Thomas Hurka说到: VisualVM使用了不同的技术以从JDK(jvmstat、JMX、Attach AP及Serviceablity agent)中取得数据。如果某项技术在特定的JDK或者操作系统上不可用,那么依赖于这些技术的VisualVM特性也将不可用。 此外,VisualVM是“可插拔的”。它含有几个插件使其能够监控、管理和修复部署在GlassFish上的应用,同时还有其他的插件使其能轻松地与NetBeans(nbproject插件)API协同工作。 来自Sun的整套开源的问题解决方案表明了其对Java社区的承诺。说到社区,在2008年的JavaOne上有5个会议是围绕着VisualVM展开的。如果你有幸参加了其中任意一个会议,InfoQ社区很高兴能分享你的评论和反馈。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。