VisualVM是什么?

VisualVM是JDK自带的一个用于Java程序性能分析的工具,JDK安装完毕后就有啦,在JDK安装目录的bin文件夹下能找到名称为jvisualvm.exe。

要使用VisualVM分析您的应用性能,首先得让VisualVM识别出您的应用。Eclipse有个插件名叫“VisualVM Launcher for Eclipse”,可以帮助我们做到这一点。

Eclipse VisualVM Launcher的安装和配置

1. 从下面的链接下载VisualVM Launcher插件。下载完毕后,放到您本地Eclipse文件夹的plugins文件夹下。

http://visualvm.java.net/eclipse-launcher.html

你可以参考下图我本地的Eclipse文件夹。注意这个插件解压之后,应该有一个名叫site.xml的文件。

2. 在Eclipse里,菜单 “Help->Install New Software”, 点 “Local”, 把第一步下载的插件文件加载进去。

Plugin文件已经被成功识别出来,可以安装了。

3. 安装完毕,重启Eclipse,能在Eclipse的option里能看到一个新的关于VisualVM的界面了。我们需要告诉Eclipse我们JDK自带的VisualVM的可执行文件具体路径。这里根据JDK的路径指定即可。

注意JDK home可别错误指定成JRE的路径了,否则Eclipse也会贴心地弹出错误提示:Error Starting VisualVM:You are running VisualVM using Java Runtime Environment(JRE)。

使用VisualVM进行性能测试

右键单击您的Java项目,从右键菜单里选择“Run as”->”Run configuration”, 创建一个新的应用程序启动配置。

因为前面我们已经成功安装了Eclipse VisualVM Launcher,所以此时发现除了Eclipse自带的Eclipse JDT launcher之外,多了一个VisualVM Launch的选项。

2. 假设我自己实现了一个快速排序算法,我想测一测它的性能。

首先我在下图代码第57行执行我的快速排序算法之处设置一个断点。

然后使用前一步创建的基于Eclipse VisualVM Launcher的应用程序启动配置,以调试模式启动我的Java应用。

断点触发,这样VisualVM就成功识别到了我的Java应用。点击Profiler标签页:

当前状态: profiling inactive.

点击CPU按钮:

现在Profile处于激活状态了。

3. 回到Eclipse,按F8结束应用程序的执行。应用程序一旦结束,VisualVM会立即扑捉到这个事件,并弹出一个窗口通知我们:

点Yes,就可以查阅VisualVM为我们产生的性能评测分析报告了。

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

使用JDK自带的VisualVM进行Java程序的性能分析的更多相关文章

  1. 使用JDK自带的visualvm进行性能监测和调优

    使用JDK自带的visualvm进行性能监测和调优   1.关于VisualVm工具  VisualVM 提供在 Java 虚拟机 (Java Virutal Machine, JVM) 上运行的 J ...

  2. Java应用常用性能分析工具

    Java应用常用性能分析工具 好的工具有能有效改善和提高工作效率或加速分析问题的进度,笔者将从事Java工作中常用的性能工具和大家分享下,如果感觉有用记得投一票哦,如果你有好的工具也可以分享给我 工具 ...

  3. jvm 命令使用调优 通过jstat、jmap对java程序进行性能调优

    转载:http://blog.csdn.net/jerry024/article/details/8507589 转载: https://blog.csdn.net/zhaozheng7758/art ...

  4. 软件性能测试分析与调优实践之路-Java应用程序的性能分析与调优-手稿节选

    Java编程语言自从诞生起,就成为了一门非常流行的编程语言,覆盖了互联网.安卓应用.后端应用.大数据等很多技术领域,因此Java应用程序的性能分析和调优也是一门非常重要的课题.Java应用程序的性能直 ...

  5. Java程序运行原理分析

    class文件内容 class文件包含Java程序执行的字节码 数据严格按照格式紧凑排列在class文件的二进制流,中间无分割符 文件开头有一个0xcafebabe(16进制)特殊的标志 JVM运行时 ...

  6. Linux环境下部署完JDK后运行一个简单的Java程序

    前言 前一篇文章详细讲解了如何在Windows环境下安装虚拟机+Linux系统,并且成功部署了JDK. 不过部署完JDK之后,我们判断部署是否成功的依据是看"java -version&qu ...

  7. DOS窗口带jar包运行java程序

    由于工作环境的问题,有过一次这样的测试,需要在DOS窗口运行带有jar包的java程序 编译命令如下: javac -Djava.ext.dirs=./lib Test.java 或 javac -D ...

  8. Java几款性能分析工具的对比

    在给客户的应用程序维护的过程中,我注意到在高负载下的一些性能问题.理论上,增加对应用程序的负载会使性能等比率的下降.然而,我认为性能下降的比率远远高于负载的增加.我也发现,性能可以通过改变应用程序的逻 ...

  9. 老李回答:JAVA程序的性能测试方法

    Java 1.5以上都在虚拟机里内建了程序性能跟踪的功能,并提供了Java Profiling API,简称JPA,你可以搜索'java profiling'.Java也提供了简单的性能性能跟踪工具J ...

随机推荐

  1. CodeForces 287B Pipeline (水题)

    B. Pipeline time limit per test 2 seconds memory limit per test 256 megabytes input standard input o ...

  2. 【hdu2955】 Robberies 01背包

    标签:01背包 hdu2955 http://acm.hdu.edu.cn/showproblem.php?pid=2955 题意:盗贼抢银行,给出n个银行,每个银行有一定的资金和抢劫后被抓的概率,在 ...

  3. Coding-Job:从研发到生产的容器化融合实践

    大家好,我是来自 CODING 的全栈开发工程师,我有幸在 CODING 参与了 Coding-Job 这个容器化的编排平台的研发.大家对 CODING 可能比较了解, Coding.net 是一个一 ...

  4. Hashtable源码剖析

    Hashtable简介 Hashtable同样是基于哈希表实现的,同样每个元素是一个key-value对,其内部也是通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长. Hashtabl ...

  5. maven工程导入eclipse后报错

    原因:需要重新部署下tomcat环境 解决方式: 右击->属性:

  6. 7.19实习培训日志- java进阶

    java进阶 java集合 Collection List ArrayList jdk1.2,异步处理,性能高,线程不安全 Vector jdk1.0,同步处理,性能低,线程安全 Set HashSe ...

  7. HERO3+ Black Edition 视角 (FOV) 信息

    HERO3+ Black Edition 视角 (FOV) 信息 问题  HERO3+ Black Edition 视角 (FOV) 信息是什么? 它在哪适用? HERO3+ Black 作答 所有视 ...

  8. 2014-11-2 NOIP模拟赛1

    Noip2009 团结模拟赛如题目理解困难,请自行阅读或参考样例.内存限制均为 256MB,时间限制均为 1s.出题人不会 故意 在题目中设置陷阱,但请自己注意程序的正确性.IO 文件名(.in/.o ...

  9. 洛谷P1044 栈(Catalan数)

    P1044 栈 题目背景 栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表. 栈有两种最重要的操作,即pop(从栈顶弹出一个元素)和push(将一个元素进栈). 栈的重要 ...

  10. MCP|BFY|Proteome Analysis of Human Neutrophil Granulocytes From Patients With Monogenic Disease Using Data-independent Acquisition(单基因疾病患者中性粒细胞的DIA蛋白质组分析)

    文献名:Proteome Analysis of Human Neutrophil Granulocytes From Patients With Monogenic Disease Using Da ...