本文转载自 http://www.importnew.com/12324.html

本文由 ImportNew - 陈 晓舜 翻译自 idrsolutions。欢迎加入翻译小组。转载请参见文章末尾的要求。


Java性能优化工具可以帮助你改进你的Java代码。

之前我写过一篇关于5个工具帮助写出更好的Java代码的文章。合适的工具可以改进我们的代码,并且提高开发效率。在IDR解决方案中,我们一直在找一些方法来改进我们的代码。但最近,我们在考虑改进PDF HTML5转换器Java PDF类库代码时,发现最近我们的关注点已经开始转换到如何提升Java性能。

在这篇文章中,我会带着大家一起看一下9个可以帮助我们优化Java性能的工具。有一些我们已经在IDR Solutions中使用了,而另外一些有可能在个人项目中使用。

NetBeans Profiler

NetBeans profiler是一个NetBeans IDE插件,主要为NetBeans IDE提供性能分析相关的功。NetBeans IDE是一个开源的集成开发环境。它很好地支持所有Java应用类型(包括Java SE、JavaFX、Java ME、Web、EJB和移动应用)的开发。

这个性能分析器包含了诸如CPU、内存和线程性能分析功能,并且提供了一些用于基本JVM监控的附加工具和功能。对于需要解决内存和性能相关问题的开发者非常有用。

JProfiler

JProfiler我之前的文章
有提及。同样,它也是一个很好的Java性能分析工具。JProfiler集CPU、内存和线程性能分析于一体,可以用于分析性能瓶颈、内存泄漏、CPU
负载和解决线程相关的问题,并且支持本地性能分析(分析与JProfiler软件安装在同一台机的应用)和远程性能分析(它可以分析远程没有安装
JProfiler机器上的应用),这一点对开发人员非常有用。

JProfiler由ej-technologies GmbH开发的商业授权的Java性能分析工具,主要为Java EE和Java SE应用所设计。

GC Viewer

GC Viewer可以(从主页Github
免费获取。GC Viewer是一个开源工具,可以对vmflags -verboase:gc和-Xloggc:等Java
VM选项产生的数据进行可视化分析。GC
Viewer可以用于计算GC(垃圾回收)相关的性能数据记录,包括吞吐、累积暂停、最长时间的暂停等等。当你想要通过改变生成大小和设置初始堆大小来调
整某个特定应用的GC时,它尤其有用。

GC Viewer是一个开源工具,由Tagtraum Industries Incorporated开发。这是一个很小的初创软件咨询公司,位于罗利、北卡罗莱纳州,由成立于1999年的非盈利项目Tagtraum Industries在2004年创立。

VisualVM

VisualVM 是一个由NetBeans平台派生的工具,遵循模块化的架构思想。这意味着可以通过插件方便的进行扩展。

Visual
VM允许你获取Java程序的详细信息,只要它在一个Java虚拟机(JVM)上运行即可。生成的数据可以由JDK工具生成和读取,多个Java程序的所
有数据和信息都可以很方便地进行查看,包括本地和远程的运行程序。同时可以保存JVM软件的数据快照,把数据保存在本地,方便以后进行查看或者和其他人一
起分享。

Visual VM可以进行CPU性能分析、内存性能分析,进行GC(译者注:可以进行强制调用GC)、保存快照等。

Patty *Beta

Patty in action (图片来源于http://patty.sourceforge.net.)

“Patty” 项目 是一个开源项目,可以从Source Forge下载。它致力于为Java 1.5.0和更高版本的虚拟机提供性能分析工具。与其他性能分析工具不同之处在于,它专注性能分析,并且允许用户在运行时开启和关闭性能分析功能。

目前Patty正处于beta版阶段,但随着更多强大的功能如方法执行、代码覆盖、线程竞争(Thread
Contention)分析的加入,Patty可以用于(内存、CPU等)性能调优,并且可以将信息通过TCP/IP
Socket发送到其他电脑上。Patty有着易用的GUI,可以用于分析堆。还可以在Java编译流程中的准备阶段,对应用程序运行时对class进行
监测(instrument)和取消监测(de-instrument)。

JRockit——任务管理

JRockit 是一个原由Appeal Virtual Machines开发的专有Java虚拟机。2002年由BEA Systems收购,之后从Sum Microsystems处转到Oracle。

Oracle的JRockit是一套完整的Java SE解决方案,包含了一个高性能JVM、性能分析、监控和排错工具。可用于预测Java程序中的延迟。

现在,JRockit打包有一系列的称为JRockit任务控制(JRockit Mission
Control)的工具。这些工具包括:一个用于管理的控制台(console,译者注:此console跟终端不一样,是特指管理后台系统),进行GC
数据可视化和其他的一些性能统计。它同样可以作为运行时性能分析工具Runtime Analyzer来使用,也可以分析内存问题。

Eclipse Memory Analyzer

Memory Analyzer (MAT) 可以在Eclipse IDE中找到.

Eclipse内存分析器(Eclipse Memory Analyzer)是一个可以帮助你找到内存泄漏和减少内存损耗的Java堆分析器。它更适合作为一个分析Java堆栈和计算大小的工具集,也可以用于监测内存泄漏和反模式带来的内存损耗。

Java Interactive Profiler

JIP是一个用Java开发的高性能、低损耗性能分析器。基于BSD许可协议发布,可以从Source Forge下载。使用JIP的开发者可以在VM运行时开启和关闭性能分析,并且可以过滤类和包、控制输出。

Profiler4J

Profiler4j

是一个专注于CPU性能分析的工具。它具有友好的用户界面,支持远程性能分析,并且支持动态修改配置。Profiler4j值得关注的特性有:基于动态字
节码增强方式,这就表明它不需要任何本地的库和外部可执行文件支持。更重要的是,它完全由Java编写,可以提供图形化的调用图形信息、调用树结构、内存
监控和类列表,支持细粒度配置文件。它基于Apache License v2.0协议发布,可以从Source Forge上下载

JVM——九大工具助你玩转Java性能优化的更多相关文章

  1. 九大工具助你玩转Java性能优化

    在这篇文章中,我会带着大家一起看一下9个可以帮助我们优化Java性能的工具.有一些我们已经在IDR Solutions中使用了,而另外一些有可能在个人项目中使用. NetBeans Profiler ...

  2. JAVA性能优化工具小记

    好记性不如烂笔头,戊戌年的最后一个工作日,把自己平时在开发过程中使用的一些java性能优化工具做一个简单的小结, 主要包括 jvisualvm.jfr.gdb和查看内存对象信息的几个linux命令. ...

  3. 《Spark大数据处理:技术、应用与性能优化 》

    基本信息 作者: 高彦杰 丛书名:大数据技术丛书 出版社:机械工业出版社 ISBN:9787111483861 上架时间:2014-11-5 出版日期:2014 年11月 开本:16开 页码:255 ...

  4. 《Spark大数据处理:技术、应用与性能优化》【PDF】 下载

    内容简介 <Spark大数据处理:技术.应用与性能优化>根据最新技术版本,系统.全面.详细讲解Spark的各项功能使用.原理机制.技术细节.应用方法.性能优化,以及BDAS生态系统的相关技 ...

  5. 《Spark大数据处理:技术、应用与性能优化》【PDF】

    内容简介 <Spark大数据处理:技术.应用与性能优化>根据最新技术版本,系统.全面.详细讲解Spark的各项功能使用.原理机制.技术细节.应用方法.性能优化,以及BDAS生态系统的相关技 ...

  6. Java性能优化的9大工具

    在这篇文章中,我会带着大家一起看一下9个可以帮助我们优化Java性能的工具.有一些我们已经在IDR Solutions中使用了,而另外一些有可能在个人项目中使用. NetBeans Profiler ...

  7. 【转载】Java性能优化之JVM GC(垃圾回收机制)

    文章来源:https://zhuanlan.zhihu.com/p/25539690 Java的性能优化,整理出一篇文章,供以后温故知新. JVM GC(垃圾回收机制) 在学习Java GC 之前,我 ...

  8. 9个Java性能优化工具汇总

    本文来自blog.idrsolutions.com 1.NetBeans profiler NetBeans Profiler是一个模块化的添加,为NetBeans IDE提供分析功能,它是一个开源的 ...

  9. Java性能优化之JVM GC(垃圾回收机制)

    Java的性能优化,整理出一篇文章,供以后温故知新. JVM GC(垃圾回收机制) 在学习Java GC 之前,我们需要记住一个单词:stop-the-world .它会在任何一种GC算法中发生.st ...

随机推荐

  1. Android修改AlertDialog宽和高以及设置AlertDialog的背景

    不知道你们试过了吗,AlertDialog在我们给他设置我们自己的布局的时候他的宽度不论我们怎么设置他都是不变的,要想改变宽和高我们可以动态的去修改他的宽度好高度 直接上代码 // 1. 布局文件转换 ...

  2. AOSP 源码整编单编

    <AOSP 源码下载>完成后,就可以开编了. 整编 整编,顾名思义就是编译整个 Android 源码,最终 out 目录会生成几个重要的镜像文件,其中有 system.img.userda ...

  3. linux脚本的source和reload

    什么时候用reload?有些程序, 当你修改了配置文件后, 需要重启之后, 配置才能生效,但是 这个程序又不能 重启 , 如大公司的httpd服务 因此, 当你修改完了之后, 需要在不重启服务的情况下 ...

  4. Limesurvey-2.55 (Ubuntu 16.04)

    平台: Ubuntu 类型: 虚拟机镜像 软件包: limesurvey-2.55 business intelligence commercial limesurvey open-source 服务 ...

  5. Azure 2 月新公布

    Azure 2 月新发布:关于虚机和云服务的降价通告,Azure SQL 数据仓库正式发布,Microsoft 认知服务:人脸识别 API 定价模式和名称更新,以及计量名称变更 关于虚机和云服务的降价 ...

  6. html+javascript+soap获取webservice免费天气预报信息

    转自:http://blog.163.com/hubeimeiyu@126/blog/static/8004881020118303318687/ 首先,也是最重要的是互联网上免费的天气预报源:htt ...

  7. 概念:RPG游戏中两个兵种互相攻击的逻辑

    直接上题目: 解析题目: 根据题目的解析,进行代码的实现: 输出结果: 心得: (1) 当我们面对‘公式结果不是我们想要的’时,应该在脑海里将一个完整的攻击流程进行想象,就会对流程有个更清晰的思路 ( ...

  8. April 25 2017 Week 17 Tuesday

    Have you ever known the theory of chocie? There are a bunch of axiems, but there are only two thing ...

  9. April 18 2017 Week 16 Tuesday

    Every light has darkness to balance it out. 有光明的地方,必定有黑暗予以平衡. I strive to get a balance between life ...

  10. redis网络模型

    多路IO复用-非阻塞同步IO模型.见http://www.cnblogs.com/syyong/p/6231326.html 具体结构:http://blog.jobbole.com/100079/ ...