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

Java技术栈 Java技术栈     2023-01-13     820

关键词:

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

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

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

1、NetBeans Profiler

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

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

2、JProfiler

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

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

3、GC Viewer

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

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

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

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

5、Patty Beta

“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——任务管理

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

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

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

8、Java Interactive Profiler

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

9、Profiler4J

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开发手册(嵩山版)》最新发布,速速下载!

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

9个java性能调优技巧,yyds!

...”,和你一起掌握更多数据库知识大多数开发者认为性能优化是一个复杂的话题,它需要大量的工作经验和相关知识理论。好吧,这也不完全错。优化一个应用做到性能最优化可能不是件容易的任务,但是这并不... 查看详情

九大工具助你玩转java性能优化

...章中,我会带着大家一起看一下9个可以帮助我们优化Java性能的工具。有一些我们已经在IDRSolutions中使用了,而另外一些有可能在个人项目中使用。NetBeansProfilerNetBeansprofiler是一个NetBeansIDE插件,主要为NetBeansIDE提供性能分析相关... 查看详情

你可能不知道的9条webpack优化策略(代码片段)

引言webpack的打包优化一直是个老生常谈的话题,常规的无非就分块、拆包、压缩等。本文以我自己的经验向大家分享如何通过一些分析工具、插件以及webpack新版本中的一些新特性来显著提升webpack的打包速度和改善包体积,学会... 查看详情

2020年国外9个顶级的java框架,你知道几个?

...avaweb框架时,你仍需要做出正确的选择。那么,你是否想知道如何为项目选择一个恰当的Java框架呢?实际上,这并不容易,而且需要深入了解为特定行业业务选择特定java框架进行软件开发的优缺点。现在,让我们一起来详细研究... 查看详情

前端性能优化

1)性能优化指标2)性能优化工具3)性能优化法制4)HTTP协议头缓存5)资源按需加载6)不同网络类型的优化7)优化实战案例如今的前端开发已经从严重依赖后端演变成了node做中间层,MVVM框架进行服务端渲染做view层。性能优化也变得异常... 查看详情

javascript性能优化方案,你知道几个?

...通用语言。由于JavaScript的流行,为了提高应用程序的性能,它的优化变得越来越必要。让我们来认识一些与JavaScript相关的挑战,以及如何优化js的性能。 典型的js性能挑战  有许多因素会影响JavaScript的性能。以下... 查看详情

前端性能优化之gzip(代码片段)

背景如果你是个前端开发人员,你肯定知道线上环境要把js,css,图片等压缩,尽量减少文件的大小,提升响应速度,特别是对移动端,这个非常重要。压缩压缩方式前端压缩的方式很多,依赖java的有ant工具,前端自己打包压缩... 查看详情

页面中的css性能优化

大型网站中会有多个CSS文件,性能优化是不要的。主要有以下几个方法:一:压缩样式表:  通过构建工具压缩CSS文件,能够减少文件的大小,从而得到更快的下载、解析和执行。对于使用预处理器例如 Sass, Less,and ... 查看详情

磁盘i/o性能优化的几个思路(代码片段)

...联网大厂面试真题,面试攻略,高效学习资料等虽然I/O的性能指标很多,相应的性能分析工具也有好几个,但理解了各种指标的含义后,你就会发现它们其实都有一定的关联。顺着这些关系往下理解,你就会发现,掌握这些常用... 查看详情

java中的5个代码性能提升技巧,最高提升近10倍(代码片段)

...已经收录,欢迎Star。这篇文章介绍几个Java开发中可以进行性能优化的小技巧,虽然大多数情况下极致优化代码是没有必要的,但是作为一名技术开发者,我们还是想追求代码的更小、更快,更强。如果哪天你发现... 查看详情

「干货」让python性能起飞的15个技巧,你知道几个呢?

...利器。本文总结了15个tips有助于提升Python执行速度、优化性能。关于Python如何精确地测量程序的执行时间,这个问题看起来简单其实很复杂,因为程序的执行时间受到很多因素的影响,例如操作系统、Python版本以及相关硬件(CPU... 查看详情

css优化,提高性能

CSS优化主要是四个方面:加载性能比如不要用@import等等,@import会影响css文件的加载速度,考虑加载性能时,主要是从减少文件体积、减少阻塞加载、提高并发方面入手,任何hint都逃不出这几个大方向。选择器性能selector对整体... 查看详情

elasticsearch性能调优之索引写入性能优化

...是有各自适用的场景,如果场景合适,就尽量用,因为对性能的提升都是很明显的5/6/7/8/9,其中通用,尽量去优化你的集群,但是其中最重要的,就是3块,filesystemcache更大的内存,给indexbuffer最充足的内存,一个是用SSD固态硬盘... 查看详情

java中的5个代码性能提升技巧,最高提升近10倍(代码片段)

这篇文章介绍几个Java开发中可以进行性能优化的小技巧,虽然大多数情况下极致优化代码是没有必要的,但是作为一名技术开发者,我们还是想追求代码的更小、更快,更强。如果哪天你发现程序的运行速度不尽... 查看详情

关于前端的一些性能优化,你知道多少

一、减少请求资源大小或者次数 1、尽量和并和压缩css和js文件。(将css文件和并为一个。将js合并为一个)  原因:主要是为了减少http请求次数以及减少请求资源的大小  打包工具:  webpack  gulp  grunt.  ....2、... 查看详情

string性能提升10倍的几个方法!(源码+原理分析)(代码片段)

...,没有之一。那么提高String的运行效率,无疑是提升程序性能的最佳手段。我们本文将从String的源码入手,一步步带你实现字符串优化的小目标。不但教你如何有效的使用字符串,还为你揭晓这背后的深层次原因。本文涉及的知... 查看详情

怎样写出高性能的java代码?

在这篇文章中,我们将讨论几个有助于提升Java应用程序性能的方法。我们首先将介绍如何定义可度量的性能指标,然后看看有哪些工具可以用来度量和监控应用程序性能,以及确定性能瓶颈。我们还将看到一些常见的Java代码优... 查看详情

string性能提升10倍的几个方法!(源码+原理分析)(代码片段)

...,没有之一。那么提高String的运行效率,无疑是提升程序性能的最佳手段。我们本文将从String的源码入手,一步步带你实现字符串优化的小目标。不但教你如何有效的使用字符串,还为你揭晓这背后的深层次原因。本文涉及的知... 查看详情