写点什么

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

  • 2010-08-14
  • 本文字数:1000 字

    阅读完需:约 3 分钟

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

2010-08-14 02:063482
用户头像

发布了 501 篇内容, 共 266.8 次阅读, 收获喜欢 62 次。

关注

评论

发布
暂无评论
发现更多内容

《采访彩食鲜 CTO 乔新亮:IT 团队从 100 到 10000 的管理心得》(采访提纲)

程序员历小冰

调查采访能力考核

精通比特币:为什么它对自由、财务和未来至关重要(上篇)

CECBC

比特币

朱嘉明:算力产业正面临着一个十年的长周期

CECBC

数字经济

在gitee码云上搭建一个网站

空城机

JavaScript 大前端 gitee 4月日更 搭建网页

模块2的作业

谢博琛

奇绩创坛2021秋季创业营开始报名

奇绩创坛

架构实战营 模块2 课后作业

༺NPE༻

如何从零开始学Python:(3)划重点:使用IDLE创建列表时需要注意的地方

广之巅

Python 4月日更

ARTS- Week 7

steve_lee

对话声网 Agora 首席科学家钟声 :5G时代到来前景下RTE实时互动技术的应用与发展

麦洛

Java

由 JVM Attach API 看跨进程通信中的信号和 Unix 域套接字

AI乔治

Java 架构 JVM 性能调优

【AI全栈二】视频流多目标多类别无延迟高精度高召回目标追踪

cv君

音视频 目标检测 视频跟踪 引航计划

Lombok初始使用及遇到的问题

风翱

lombok 4月日更

专访声网首席科学家钟声|倾听不一样的“钟声”,声网实时互动服务

程序员架构进阶

28天写作 4月日更 调查采访能力考核 人物访谈

Go Goroutine

escray

学习 极客时间 Go 语言 4月日更

【提纲】专访融云CTO杨攀 | 技术型人才的自我修炼

Python研究所

调查采访能力考核

关于数字人民币、加密货币,央行前行长周小川、副行长李波博鳌论坛发声

CECBC

数字货币

python 变量作用域和列表

若尘

变量 Python编程 作用域

领域驱动设计 101- 上下文与持续集成

luojiahu

领域驱动设计 DDD

面试4轮字节Java研发岗,最终拿下Offer(原题复盘)

码农之家

编程 程序员 互联网 面试 字节

Excelize 2.4.0 正式版发布, 新支持 152 项公式函数

xuri

GitHub 开源 Excel Go 语言 Excelize

Ansible 介绍

耳东@Erdong

4月日更

【提纲】专访融云 CTO 杨攀 | 物联网城池应用和发展

李孟聊AI

调查采访能力考核

对话声网 Agora 首席科学家钟声 :声网的未来规划和人才建议

小诚信驿站

采访 调查采访能力考核

访谈阿里巴巴安全科学家吴翰清

容光

专访 阿里吴翰清 最新网络安全

Python 爬虫实战(一) 爬取自如网租房信息

U2647

python 爬虫 4月日更

为什么微服务一定要有 API 网关?

xcbeyond

微服务 api 网关 4月日更

ElasticSearch 如何使用 TDigest 算法计算亿级数据的百分位数?

程序员历小冰

大数据 elasticsearch 近似算法 TDgigest

MySQL 死锁套路:再来看一例走不同索引更新的例子

AI乔治

Java MySQL 架构

为什么我愿意持续做这样一件看似没有价值的事情

帅安技术

坚持 持续写作 长期价值

斗智亦斗棋,零售云市场的“楚河汉界”突围赛

脑极体

Java问题诊断工具VisualVM 1.3版发布_Java_崔康_InfoQ精选文章