InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

Java问题诊断工具VisualVM 1.3版发布

作者 崔康 发布于 2010年8月14日

领域
运维 & 基础架构,
过程 & 实践,
架构 & 设计,
语言 & 开发
主题
虚拟机 ,
运行时 ,
Java SE ,
代码质量 ,
代码分析 ,
Java ,
质量 ,
调试器 ,
垃圾回收 ,
运维 ,
开放源代码 ,
调试 ,
Oracle ,
软件工匠 ,
语言 ,
性能评估 ,
架构 ,
工具 ,
编程 ,
系统监测 ,
内存泄漏 ,
敏捷 ,
性能和可伸缩性

VisualVM是一款免费的Java问题诊断工具,通过可视化的界面集成了JDK的各种诊断命令和轻量级的性能分析功能,适用于生产和开发环境。最近,VisualVM 1.3版发布,新增功能包括支持获取远程堆转储(Heap dump)和监控远程主机等,本文对其做一简要介绍。

VisualVM的基本功能包括获取线程转储、堆转储和进行性能分析,可以帮助相关人员诊断Java应用的各种问题,例如:

  • 线程转储,适用于分析性能问题,如Java应用的响应时间很高或者应用挂起,则可以通过线程转储查看运行时各种线程的状态,比如是否都在等待某个限制性关键资源。
  • 堆转储,适用于分析内存问题,比如诊断Java应用的泄露问题,通过获取和比较堆转储可以发现堆中各个对象的大小和数量变化情况,发现可疑的内存增长点。
  • 性能分析,顾名思义,用户可以查看哪些方法运行时间最长、调用次数最多等等,从而对应用做重构优化。

VisualVM面向的用户包括:

  • 应用开发人员:监控、分析和获取线程转储、查看堆转储
  • 系统管理员:监控和控制Java应用
  • Java应用用户:创建缺陷报告

对于VisualVM 1.3版来说,功能集、支持的操作系统和JDK都发生了变化。

新功能包括:

  • 将Sampler插件添加到核心工具集。
  • 支持获取远程堆转储。
  • 支持通过JMX应用监控远程主机。
  • 支持主机、应用、核心转储(coredump)和快照(snapshot)的定制排序。
  • 识别Clojure、Groovy、 JRuby、Jython和Scala的运行时系统。

支持的操作系统:

  • Microsoft Windows (7, Vista, XP, Server): 32bit & 64bit
  • Linux: Intel platform, 32bit & 64bit
  • Sun Solaris: Intel & Sparc platform, 32bit & 64bit
  • Mac OS X: Intel platform, 32bit & 64bit
  • HP-UX 11i: PA-RISC platform, 32bit & 64bit

适用的JDK版本:

  • Oracle/Sun JDK 6+
  • OpenJDK 6+
  • IcedTea 6+
  • Apple JDK 6+
  • HP-UX JDK 6.0.01+

VisualVM除了基本功能之外,还有一个强大的插件机制,用户可以根据需要配置已有插件或者定制开发自己的插件,比较实用的现有插件包括Visual GC Plugin、Threads Inspector、JVM Capabilities等。

对VisualVM感兴趣的朋友可以下载试用、查看源代码、阅读中文版的入门指南介绍

细心的读者可能会发现VisualVM不支持IBM JDK。IBM有自己的JDK实现,并且广泛应用于各个平台(Solaris除外)上的IBM产品(如Websphere Application Server),如果朋友需要诊断部署在IBM产品上的Java应用的问题,可以下载IBM提供的问题诊断工具IBM Support Assistant

崔康 热情的技术探索者,资深软件工程师,InfoQ编辑,从事企业级Web应用的相关工作,关注性能优化、Web技术、浏览器等领域。

Java的未来在哪里? 发表人 Sun Tzu 发表于
  1. 返回顶部

    Java的未来在哪里?

    发表人 Sun Tzu

    创新。