`
ljhard_1030
  • 浏览: 2718 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
最近访客 更多访客>>
社区版块
存档分类
最新评论

JDK中还藏着一个宝贝 它的名字叫做VisualVM

    博客分类:
  • jdk
 
阅读更多

令人意想不到的宝贝,其实往往已经早就在你眼前,只不过你没发现它。VisualVM就是这样的。每当我们升级JDK、打开IDE时,其实我们就用上了它所带来的新特性。至少,我自己是这样认为的。

我第一次获知VisualVM是在去年二月份Geertjan Wielenga所写的一篇文章里,那时它的第三版都已经发布了。可以说VisualVM是Java开发者最为重要的工具,但同时这也是最不为人知的秘密。在Java的运行效率仍然是个问题的情况下,正是它有效的解决了这个问题。(有关VisualVM的简介,可参考51CTO之前发布的Sun VisualVM项目 开源Java问题解决方案一文)

VisualVM简介

简单说来,VisualVM是一种集成了多个JDK命令行工具的可视化工具,它能为您提供强大的分析能力。所有这些都是免费的!它囊括的命令行工具包括jstat, JConsole, jstack, jmap 和 jinfo,这些工具与JDK的标准版本是一致的。

你可以使用VisualVM生成和分析海量数据、跟踪内存泄漏、监控垃圾回收器、执行内存和CPU分析,同时它还支持在MBeans上进行浏览和操作。尽管VisualVM自身要在JDK6这个版本上运行,但是JDK1.4以上版本的程序它都能监控。

对于我来说,这些功能都是至关重要的。以前我一直在使用如YourKit这样的一些付费软件来检测我的应用软件,但现在我可以用VisualVM这样一个开源工具来实现同样的功能。更何况,有谁比能Sun公司更了解JVM呢?

如何获取VisualVM

VisualVM的一个最大好处就是,它已经在你的JDK bin目录里了,只要你使用的是JDK1.6 Update7之后的版本。点击一下jvisualvm.exe图标它就可以运行了。

你所需要做的只是点一下jvisualvm.exe,就能启动它。运行中的所有Java应用程序将显示在右边的导航栏。你会发现根本不需要在VisualVM 里亲自为你的应用程序注册,因为它们全都会自动显示出来。你甚至还可以在导航栏里查看到远程的应用程序。

显示为“未知进程”(pid为5392)的程序是Eclipse 
显示为“未知进程”(pid为5392)的程序是Eclipse

使用VisualVM

VisualVM有很多令人眼前一亮的功能,它能使你:

◆监控应用程序的性能和内存占用情况

◆监控应用程序的线程

◆分析(Profile)应用程序性能和内存分配情况

◆进行线程转储(Thread Dump)或堆转储(Heap Dump)

◆分析核心转储(Core Dump)

◆保存快照以便脱机分析应用程序。 

用VisualVM评估IDE

我很想用VisualVM 做点什么,于是我决定,用它来对目前最先进的三个IDE进行评测。为此我特意新安装了 NetBeans 6.5.1 (JavaSE only version) , Eclipse (for Java Developers) 和 IntelliJ IDEA (8.1.2).

测试如下:

◆在VisualVM 中运行内存分析器(Memory Profiler)

◆在IDE中创建一个新的项目

◆创建一个简单的类,这个类只有一个可以打印“Hello World"的main方法

◆保存内存分析结果

◆生成这个应用程序的堆转储(Heap Dump)

◆从VisualVM 的监视视图(Monitor View)里获取信息

◆重新启动IDE,使用CPU分析器(CPU Profiler),在IDE中执行相同的步骤

◆保存CPU分析器(CPU Profiler)的结果

我意识到,CPU和内存评测其实是可以同时进行的,但为了便于下文的解释,我特意将它们分别进行。

我用IntelliJ做测试时,发现只有用我自己的JDK才能启动它,而不能用它自带的。虽然我太不熟悉这个IDE,但我发现当我用JSDK创建新工程时,它必须解析JDK中的文件。

此外,请注意,这些IDE都是我刚刚才下载的默认版本,没有针对Java开发作什么优化处理

堆转储

我发现要对软件进行全面对比时,最好的手段是进行堆转储(Heap Dump)。这在程序运行时,使用VisualVM可以让这项工作变得十分太简单,你随时都可以右键单击那个程序,然后选择 Heap Dump 就可以了。

在个领域我评测的两个指标是:字节总数和类(class)的总数

NetBeans堆转储 
NetBeans堆转储

Eclipse堆转储 
Eclipse堆转储

IntelliJ IDEA 堆转储 
IntelliJ IDEA 堆转储

NetBeans:

◆总的字节数:31,576,772

http://www.zxbc.cn/html/20090821/72739.html

分享到:
评论

相关推荐

    visualvm jdk插件

    它集成了多个JDK工具,如JConsole、JProfiler和JStack等,提供了一个统一的用户界面,使得开发者无需在不同工具之间切换,就能完成各种性能分析任务。 **1. VisualVM的主要功能** - **内存分析**:VisualVM可以...

    visualvm 216版本

    VisualVM 是一个集成多个 JDK 命令行工具的可视化工具。可以作为 Java 应用程序性能分析和运行监控的工具。开发人员可以利用它来监控、分析线程信息,浏览内存堆数据。系统管理员可以利用它来监测、控制 Java 应用...

    VisualVM 2.1.5 (visualvm-215.zip)

    VisualVM 2.1.5 是一款强大的Java应用程序性能分析工具,它集合了多种JDK命令行工具的功能,并提供了一个直观的图形用户界面。这款工具是开发者和运维人员的得力助手,尤其在优化和调试Java应用时,能提供丰富的信息...

    JDK1.8中文文档 JDK1.8中文 jkd8中文文档 JDK中文版

    JDK1.8,也被称为Java Development Kit 1.8,是Oracle公司发布的一个重要的Java开发工具集,它包含了许多用于构建和运行Java应用程序所需的组件和服务。这个版本的JDK引入了一系列创新特性,极大地提升了Java语言的...

    visualvm, 在一个Java故障排除工具中,VisualVM是一个.zip

    visualvm, 在一个Java故障排除工具中,VisualVM是一个 ( 母版) 源库VisualVM是一个集成命令行JDK工具和轻量级分析能力的可视化工具。 有关详细信息,下载和文档,请参阅 https://visualvm.github.io 。获取工具使用...

    visualvm 中文版(亲测可用)

    版本1.3.9 (2016-10-4 发布) VisualVM is a visual tool integrating commandline JDK tools and lightweight profiling capabilities. Designed for both development and production time use.

    VisualVM_142 For Mac

    VisualVM 是一个工具,它提供了一个可视界面,用于查看 Java 虚拟机 (Java Virtual Machine, JVM) 上运行的基于 Java 技术的应用程序(Java 应用程序)的详细信息。VisualVM 对 Java Development Kit (JDK) 工具所...

    visualVM性能优化工具

    "VisualVM 性能优化工具" VisualVM 是一款免费的性能分析工具,由 Oracle 公司开发,自从 JDK 6 Update 7 以后已经作为 ...VisualVM 是一个功能强大且免费的性能分析工具,对 Java 应用程序的性能优化非常有帮助。

    visualVM 1.42

    首先,VisualVM集成了多种Java性能分析工具,包括JConsole、JMX、JProfiler等,使得开发者可以在一个统一的界面下进行多维度的性能分析。例如,它可以显示JVM内存使用情况,包括堆内存、非堆内存(如Perm Gen或...

    visualvm143.zip

    VisualVM 143作为一个强大的Java性能分析工具,不仅提供丰富的功能,还持续改进用户体验,为开发者提供了便捷的性能调优手段。熟练掌握VisualVM,能够有效提升Java应用程序的性能,降低系统资源消耗,从而提高整体...

    JDK11安装包文件、附带环境配置教程(全网最详情,值得收藏)

    JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK...

    jdk17中文说明文档

    "jdk-17中文api.CHM" 是一个帮助文件,通常以CHM(Compiled Help Manual)格式存储,这是一种由微软开发的用于组织和展示电子帮助文档的格式。在这个文件中,包含了JDK 17的所有中文API(Application Programming ...

    VisualVM 使用详解

    VisualVM将多个JDK命令行工具集成在一个统一的图形用户界面中,这些工具包括jstat、JConsole、jstack、jmap和jinfo等,从而为用户提供了一种更为直观高效的方式来管理Java应用程序。 #### 二、获取VisualVM ...

    jdk8中文说明文档_CHM.zip jdk1.8文档 jdk1.8说明文档

    Java Development Kit (JDK) 1.8,通常被称为JDK 8,是Java编程语言的一个重要版本,由Oracle公司发布。这个版本引入了许多新特性、优化和改进,旨在提高开发人员的效率和代码的可维护性。 JDK 8中文说明文档提供了...

    visualvm_14.zip

    对于“visualvm_14.zip”这个文件,可能是VisualVM的一个特定版本或者包含了与之相关的资源,用于在特定环境下使用或学习VisualVM。为了充分利用这个工具,建议解压后阅读相关文档,熟悉其界面和功能,然后在实际...

    visualvm_203.zip

    标题中的"visualvm_203.zip"是指VisualVM的一个特定版本,版本号为203。这个压缩包包含了VisualVM的完整安装文件,解压后用户可以找到所需的各种组件,特别是用于启动VisualVM的可执行文件。 描述中提到,要在IDEA...

    JDK13 API 中文 文档.CHM

    **JDK13 API中文文档**是Java开发者的重要参考资料,它包含了JDK13版本中的所有公共类、接口、枚举、注解等编程元素的详细说明,为开发者提供了全面的API函数用法和功能解释。这篇文档是中文版,方便了中文使用者...

    VisualVM简介

    VisualVM 是一款强大的 Java 应用程序监控和诊断工具,它集成了一系列的 JDK 命令行工具,如 jps、jstat、jinfo、jmap、jstack 和 jhat,提供了一个统一的图形用户界面,方便开发者深入了解 Java 应用程序的运行状况...

    jdk8中文手册

    JDK 8中文手册是一个详尽的参考文档,它涵盖了所有API、类库和工具,为Java开发者提供了全面的指导。 1. **Lambda表达式** JDK 8最重要的特性之一就是引入了Lambda表达式,它使得函数式编程在Java中变得更加简洁。...

Global site tag (gtag.js) - Google Analytics