后端:推荐九款Java 性能优化工具,你都用过吗?
今天给大家一起看一下9个可以帮助我们优化Java性能的工具。
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 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)。
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上下载。
IT技术分享社区
个人博客网站:https://programmerblog.xyz
文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识
后端:推荐九款Java 性能优化工具,你都用过吗?相关推荐
- 5款Java性能分析工具的对比
在给客户的应用程序维护的过程中,我注意到在高负载下的一些性能问题.理论上,增加对应用程序的负载会使性能等比率的下降.然而,我认为性能下降的比率远远高于负载的增加.我也发现,性能可以通过改变应用程序的逻 ...
- 赠书:《Java性能优化实践》,众多业内大佬推荐阅读
没有捷径可走的 Java 性能优化 多年来,用 Google 搜索 Java performance tuning,出现的三篇最热门文章之一是于 1997 年到 1998 年左右发表的文章,这篇文章在 ...
- 推荐:Java性能优化系列集锦
Java性能问题一直困扰着广大程序员,由于平台复杂性,要定位问题,找出其根源确实很难.随着10多年Java平台的改进以及新出现的多核多处理器,Java软件的性能和扩展性已经今非昔比了.现代JVM持续演 ...
- 新书上市 | 《Java性能优化实践》,众多业内大佬推荐阅读
没有捷径可走的 Java 性能优化 多年来,用 Google 搜索 Java performance tuning,出现的三篇最热门文章之一是于 1997 年到 1998 年左右发表的文章,这篇文章在 ...
- Java性能优化四、性能测试工具
文章目录 推荐几款常用的性能测试工具 1.ab 2.JMeter 3.LoadRunner 总结 推荐几款常用的性能测试工具 常用的性能测试工具有很多,在这里我将列举几个比较实用的. 对于开发人员来说 ...
- 怎么做好Java性能优化
0. 开篇 性能优化是一个很复杂的工作,且充满了不确定性.它不像Java业务代码,可以一次编写到处运行(write once, run anywhere),往往一些我们可能并不能察觉的变化,就会带来惊 ...
- Java性能优化怎么做好
开篇 性能优化是一个很复杂的工作,且充满了不确定性.它不像Java业务代码,可以一次编写到处运行(write once, run anywhere),往往一些我们可能并不能察觉的变化,就会带来惊喜/惊 ...
- 拉勾教育 | Java 性能优化实战 21 讲
开篇词 开篇词 | Java 性能优化,是进阶高级架构师的炼金石 你好,我是李国.作为<Java 性能优化与面试 21 讲>这个课程的作者,我先来简单介绍下自己. 我曾任京东金融.陌陌科技 ...
- 百度App Android启动性能优化-工具篇
一.前言 启动性能是APP的极为重要的一环,启动阶段出现卡顿.黑屏问题,会影响用户体验,导致用户流失.百度APP在一些比较低端的机器上也有类似启动性能问题,为保留存,需要对启动流程做深入优化.现有的性 ...
最新文章
- TCP网络那点破事!三次握手、四次挥手、TIME-WAIT、HTTP 2.0 ....
- Nature子刊:加州大学伯克利分校Banfield组发现某些淡水湖泊中的大噬菌体或能加速好氧甲烷氧化...
- php用中文分割字符串,利用php怎么对中文字符串进行分割
- 【组合数学】排列组合 ( 多重集组合数 | 所有元素重复度大于组合数 | 多重集组合数 推导 1 分割线推导 | 多重集组合数 推导 2 不定方程非负整数解个数推导 )
- python+eclipse
- 003---属性查找和绑定方法
- 一台电脑部署两个或多个 Hexo 博客(一台电脑使用两个或多个 GitHub 账号)
- ElasticSearch优化系列二:机器设置(内存)
- AttributeError: type object 'h5py.h5.H5PYConfig' has no attribute '__reduce_
- 【代码保留】WebService发布本地磁盘信息
- am4xMjIx 解密,jn1221解密,AdminWeb 解密分析。
- 学生成绩管理系统设计java_java学生成绩管理系统设计与实现
- java中raiseSalary_用Java编写常用的工资管理系统,目的是把每个人的工资上涨百分之五...
- node.js安装配置教程
- 如何使div 上下左右居中 css
- Daimayuan Online Judge 上帝的集合
- 刘泽云《计量经济学实验教程》笔记
- 会议室预约小程序-会议室预约小程序
- Android Studio的res自动生成的文件出错了_莫韵乐与bug的奇妙冒险
- Java内存模型(JMM)详解
热门文章
- 新浪微博推出具有中国特色的“关注但屏蔽”功能
- 2018 年视频监控企业竞争力分析 海康威视连续七年蝉联全球第一
- Basler相机SDK相关问题收集与知识汇总
- python语言学习零基础教学视频_Python告白小白视频教程(零基础入门)
- java 分号 转义_java – 正则表达式和转义和未转义的分隔符
- python 定时自动爬取_python实现scrapy爬虫每天定时抓取数据的示例代码
- python异常处理的语法格式_Python异常处理
- c语言结构体编程,[编程] C语言的结构体详解
- [BZOJ4033][HAOI2015]树上染色(树形DP)
- 大数据学习之Linux环境搭建(导航)