Java 性能优化的 9 个工具,你知道几个?

摘要:
在本文中,我将介绍九种可以帮助我们优化Java性能的工具。它也是一个很好的Java性能分析工具。JProfiler是由ej technologies GmbH开发的一种商业许可的Java性能分析工具,主要用于Java EE和Java SE应用程序。它致力于为Java 1.5.0和更高版本的虚拟机提供性能分析工具。可用于预测Java程序中的延迟。它更适合作为分析Java堆栈和计算大小的工具集,也可以用于监视反模式导致的内存泄漏和内存丢失。

之前我写过一篇关于5个工具帮助写出更好的Java代码的文章。合适的工具可以改进我们的代码,并且提高开发效率。在IDR解决方案中,我们一直在找一些方法来改进我们的代码。

但最近,我们在考虑改进PDF HTML5转换器和Java PDF类库代码时,发现最近我们的关注点已经开始转换到如何提升Java性能。

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

1、NetBeans Profiler

Java 性能优化的 9 个工具,你知道几个?第1张

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

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

2、JProfiler

Java 性能优化的 9 个工具,你知道几个?第2张

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

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

3、GC Viewer

Java 性能优化的 9 个工具,你知道几个?第3张

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年创立。

4、VisualVM

Java 性能优化的 9 个工具,你知道几个?第4张

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

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

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

5、Patty Beta

Java 性能优化的 9 个工具,你知道几个?第5张

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

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

6、JRockit——任务管理

Java 性能优化的 9 个工具,你知道几个?第6张

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来使用,也可以分析内存问题。

7、Eclipse Memory Analyzer

Java 性能优化的 9 个工具,你知道几个?第7张

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

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

8、Java Interactive Profiler

Java 性能优化的 9 个工具,你知道几个?第8张

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

9、Profiler4J

Java 性能优化的 9 个工具,你知道几个?第9张

Profiler4j 是一个专注于CPU性能分析的工具。它具有友好的用户界面,支持远程性能分析,并且支持动态修改配置。

Profiler4j值得关注的特性有:基于动态字节码增强方式,这就表明它不需要任何本地的库和外部可执行文件支持。

更重要的是,它完全由Java编写,可以提供图形化的调用图形信息、调用树结构、内存监控和类列表,支持细粒度配置文件。它基于Apache License v2.0协议发布,可以从Source Forge上下载。

来源:idrsolutions

译者:伯乐在线 - 陈晓舜

链接:http://www.importnew.com/12324.html

近期热文推荐:

1.1,000+ 道 Java面试题及答案整理(2021最新版)

2.别在再满屏的 if/ else 了,试试策略模式,真香!!

3.卧槽!Java 中的 xx ≠ null 是什么新语法?

4.Spring Boot 2.5 重磅发布,黑暗模式太炸了!

5.《Java开发手册(嵩山版)》最新发布,速速下载!

觉得不错,别忘了随手点赞+转发哦!

免责声明:文章转载自《Java 性能优化的 9 个工具,你知道几个?》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇noVNC 搭建linux ftp 命令详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

首次启动速度慢的问题记录IIS性能优化

ASP.NET网站发布的时候需要预编译.这样不但能解决首次速度慢的问题,还能把cshtml的内容编译.这样别人就看不到我们VIEW的代码了.那么打开VS. 发布的时候把"在发布期间预编译"打钩,点击后面的设置取消选择"允许更新预编译站点".这样编译出来的网站view被编译成.compiled文件.并且根目录下多了一个PrecompiledApp.conf...

压倒程序员的最后一个面试题,iOS性能优化的面试题

点赞再看,养成习惯,欢迎大家关注我面试小专栏 :iOS中高级进阶之路有我准备的一线大厂面试资料和简历模板,欢迎Star! 这是我前面几天碰到的面试题: 如何对定位和分析项目中影响性能的地方?以及如何进行性能优化?我的答案:定位方法:instruments在iOS上进行性能分析的时候,首先考虑借助instruments这个利器分析出问题出在哪,不要凭空想象,...

WPF性能优化经验总结

WPF性能优化一、Rendering Tier 1. 根据硬件配置的不同,WPF采用不同的Rendering Tier做渲染。下列情况请特别注意,因为在这些情况下,即使是处于Rendering Tier 2的情况下也不会硬件加速。(不全,其余请查阅SDK) WPF性能优化二、布局和设计 1.尽量多使用Canvas等简单的布局元素,少使用Grid或者Stac...

Spark性能优化指导及总结

1. 写在前面 之前零散的写了一些spark在某一块的性能优化,比如sparkstreaming的性能优化,参数优化,sparkSQL的优化。本篇博文针对spark一些基本的核心优化做一个介绍分享,当然这里的介绍适合rdd,sparkstreaming,sparkSQL等。当然个人认为不管什么样的优化方案和方式都只是为了提供一个优化参考。具体实际的业务中,...

小谈网站性能优化

随着公司的栏目越来越多,数据量的庞大。网站的性能就越崭露头角。 当然,网站性能优化是多方面的,这里先谈一下这些天来的所获: 1、书写代码的习惯;  再复杂的逻辑,也是从最简单的开始。在书写代码的过程中,很多不好的规范都会影响网站的性能; 以下是整理出来的些许代码习惯: 1)字符串的比较 用 string.Empty 代替 " " 2)在遍历过程中,先定义好...

懒加载和预加载---性能优化

懒加载 认识 懒加载是一种按需延迟资源的方式。在加载显示页面时,并不一次性加载所有该页面所需要的图像,对于在可视区域之外的图像,可以等到用户scroll到该区域的时候,再进行加载 实现方式 1、目前已经有很多库实现了懒加载,例如lazysizes,可以考虑使用 2、使用库这样的操作,相当于增加一个需要请求的js文件,增加一次http请求。所以如果能够实现原...