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

yuyu666 yuyu666     2023-01-11     436

关键词:

在这篇文章中,我会带着大家一起看一下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

“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中找到. 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上下载

希望你觉得这些工具有用。

原文链接: http://blog.idrsolutions.com/2014/06/java-performance-tuning-tools/
翻译: 陈 晓舜
译文链接: http://www.importnew.com/12324.html

21|移动测试神器:带你玩转appium

...的使用AppiumInspector主要是用来协助对界面元素进行定位的工具。Appium的实现原理Appium分为三大部分,分别是Appi 查看详情

快速定位线上慢sql问题,掌握这几个性能排查工具可助你一臂之力

...💅开源项目:【轮子之王】文章目录前言SQL性能优化工具一、SQL的执行频率二、慢查询日志三、showprofiles详情分析四、explain执行计划性能优化技巧一、插入数据优化主键优化二、查询优化1、Orderby优化2、groupby优化3、Limit优化... 查看详情

新生代工程师手把手教你玩转alluxio+ml(下篇)

...获得训练性能提升,能提升多少。Alluxio自建性能测试工具:StressBenchStressBench:一套Alluxio自带的性能测试,用来测试不同环境下Alluxio各个部分的处理速度优点:不依赖外部组件,只需要运行的Alluxio集群在A... 查看详情

一文彻底教会你玩转java动态代理(代码片段)

第一步:定义接口//第一步:定义接口interfacetestIProxyvoidhello();第二步:实现InvocationHandler接口classmyInvocationHandlerimplementsInvocationHandler@OverridepublicObjectinvoke(Objectproxy,Methodmeth 查看详情

一文彻底教会你玩转java动态代理(代码片段)

第一步:定义接口//第一步:定义接口interfacetestIProxyvoidhello();第二步:实现InvocationHandler接口classmyInvocationHandlerimplementsInvocationHandler@OverridepublicObjectinvoke(Objectproxy,Methodmeth 查看详情

九爷带你玩转docker五大监控

轻量级虚拟化容器Docker,自发布以来便广受业界关注,在开源界和企业界掀起了一阵风。Docker容器相对于VM有以下几个优势:启动速度快;资源利用率高;性能开销小。650)this.width=650;"src="https://segmentfault.com/image?src=http://news.oneapm.... 查看详情

1分钟带你玩转kafka

说起Kafka,许多使用者对它是又爱又恨。Kafka是一种分布式的、基于发布/订阅的消息系统,其极致体验让人欲罢不能,但操心的运维、复杂的安全策略、可靠性易用性的缺失、算不上极致的性能发挥、并不丰富的消息服务功能,... 查看详情

java——18个demo带你玩转java中的i/o流(代码片段)

文章目录:写在前面1.Demo1(FileInputStream)2.Demo2(FileInputStream)3.Demo3(FileInputStream)4.Demo4(FileOutputStream)5.Demo5(FileInputStream& 查看详情

ios教你玩转uitableviewcontroller和tableview

iphone和Ipad开发中UITableViewController和TableView应该是用得比較多得控件。可是你是会由于写这些控件写得多了而厌烦。全部怎么让这个控件一直能用。怎么让这个控件写起来简单。是非常必须。特别是UITableViewController把dataSouce的业... 查看详情

手把手带你玩转spark机器学习-使用spark进行文本处理(代码片段)

系列文章目录手把手带你玩转Spark机器学习-专栏介绍手把手带你玩转Spark机器学习-问题汇总手把手带你玩转Spark机器学习-Spark的安装及使用手把手带你玩转Spark机器学习-使用Spark进行数据处理和数据转换手把手带你玩转Spark机器学... 查看详情

纯干货:21天带你玩转容器

纯干货:21天带你玩转容器可能有些人已经使用过容器,但考虑知识体系的完整性,我们还是从最基本的容器知识开始带大家进入容器的世界。首先介绍一下什么是容器?Docker是一种轻量级的操作系统虚拟化解决方案,它想达到... 查看详情

架构师带你玩转分布式锁

  大多数互联网系统都是分布式部署的,分布式部署确实能带来性能和效率上的提升,但为此,我们就需要多解决一个分布式环境下,数据一致性的问题。  当某个资源在多系统之间,具有共享性的时候,为了保证大家访问... 查看详情

架构师带你玩转分布式锁

大多数互联网系统都是分布式部署的,分布式部署确实能带来性能和效率上的提升,但为此,我们就需要多解决一个分布式环境下,数据一致性的问题。当某个资源在多系统之间,具有共享性的时候,为了保证大家访问这个资源... 查看详情

一文彻底教会你玩转java动态代理(代码片段)

第一步:定义接口//第一步:定义接口interfacetestIProxyvoidhello();第二步:实现InvocationHandler接口classmyInvocationHandlerimplementsInvocationHandler@OverridepublicObjectinvoke(Objectproxy,Methodmethod,Object[]args)throwsThrowableSystem.out.println(method.g... 查看详情

手把手带你玩转spark机器学习-使用spark构建分类模型

系列文章目录手把手带你玩转Spark机器学习-专栏介绍手把手带你玩转Spark机器学习-问题汇总[持续更新]手把手带你玩转Spark机器学习-Spark的安装及使用手把手带你玩转Spark机器学习-使用Spark进行数据处理和数据转换手把手带你玩转... 查看详情

从零开始,带你玩转一站式实时数仓hologres

简介:本次系列直播课程,将会从零开始带您玩转一站式实时数仓Hologres,让您从入门到精通。在大数据领域,Hologres一直以其超牛的功能、超高的性能,低成本的运维等优势广受好评,但是随着越来越多... 查看详情

带你玩转eclipse项目转成androidstudio项目(代码片段)

随着Android对Eclipse开发工具的淘汰,越来越多的公司使用AndroidStudio进行相应的android开发工作。如此,原来用Eclipse开发的项目,怎么导入到AndroidStudio中呢?今天我们就来聊聊这开发中最基本的事。好了,长话... 查看详情

带你玩转jquery

一、简介定义  jQuery创始人是美国JohnResig,是优秀的Javascript框架;  jQuery是一个轻量级、快速简洁的javaScript库。源码戳这jQuery对象  jQuery产生的对象时jQuery独有的,只能自己调用书写规则  支持链式操作;(对同一元... 查看详情