本文由 ImportNew - 陈 晓舜 翻译自 idrsolutions。欢迎加入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上下载
希望你觉得这些工具有用。
你使用什么工具来改进你的代码,请告诉我们吧!
这篇文章是我们”Java文章索引“系列的一部分。在这些文章中,我们致力于深入Java和JavaFx。看一下吧!
如果你是第一次看这个系列,或者想要在我们发布新文章和更新时,得到通知,你可以通过社交媒体来关注(Twitter, Facebook和Google+)或者Blog RSS
原文链接: idrsolutions 翻译: ImportNew.com - 陈 晓舜
译文链接: http://www.importnew.com/12324.html
[ 转载请保留原文出处、译者和译文链接。]
相关推荐
《树莓派开始,玩转Linux》这本书是针对想要深入理解和使用树莓派与Linux操作系统的读者而编写的。树莓派是一款小巧且价格亲民的单板计算机,深受技术爱好者和初学者的喜爱,它为学习Linux提供了一个理想的平台。在...
### 性能工程师指南:玩转OpenJDK HotSpot垃圾收集器 #### 一、性能工程概述 在软件开发过程中,性能工程是一个重要的环节,它不仅涵盖了对软件性能的需求定义与测试计划制定,还包括了软件的开发、实施及后续的...
《玩转户外商城管理系统——基于Java SSM框架的实现》 本文主要探讨了一款基于Java SSM框架的户外商城管理系统的设计与实现。该系统旨在为用户提供便捷的在线购物体验,包括商品浏览、活动参与、订单查询等一系列...
《深入浅出玩转FPGA》是一本专为FPGA初学者及进阶者精心编写的书籍,旨在帮助读者全面理解和掌握FPGA技术的核心概念、设计流程和实战应用。FPGA,全称为Field-Programmable Gate Array,即现场可编程门阵列,是现代...
- **性能优化**:Java 3D虽然强大,但性能可能不如原生的OpenGL。通过合理的对象缓存、减少不必要的渲染和优化场景图结构,可以提升游戏性能。 - **扩展功能**:游戏可以添加更多功能,如计时器、难度等级、教程...
Java 8 引入的 ...掌握这些技巧将有助于优化多线程和并发应用程序的性能,提高代码的可读性和可维护性。在实际项目中,合理利用 CompletableFuture 可以避免回调地狱,使代码更加简洁,易于理解和调试。
玩转数据结构 从入门到进阶(无密),Spring Boot技术栈博客企业前后端,Top团队大牛带你玩转Android性能分析与优化,大厂资深面试官 带你破解Android高级面试,百度资深工程师 全方位讲解测试面试(前6章),TestNG测试框架...
J2ME优化压缩PNG文件 4个目标文件 内容索引:JAVA源码,综合应用,J2me游戏,PNG,图形处理 这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失...
**标题:“JBasicX:玩转 Java”** **解析:** `JBasicX` 是一个与 Java 相关的项目,可能是一个编程工具或者库,它致力于帮助开发者更轻松地处理旧项目的修订工作。在 Java 开发领域,旧项目的修订通常涉及到代码...
JavaME俄罗斯方块是一款基于Java Micro Edition(JavaME)平台开发的经典游戏,它实现了俄罗斯方块的基本玩法,没有使用任何图形素材,完全依赖于代码逻辑来呈现游戏界面和操作。这款程序展示了JavaME在轻量级设备上...
使用Eclipse,开发者可以通过其内置的JAVA开发工具集,轻松地编写、测试和优化代码。 项目运行环境为JDK6,这是JAVA Development Kit的一个版本,包含了JAVA编译器和JRE(JAVA Runtime Environment),用于编译和...
通过以上分析可以看出,《玩转电商系统深入剖析智慧电商平台》这本书不仅涵盖了电商平台的核心技术要点,还针对实际应用场景提出了具体的实践方案。无论是对于想要深入了解该领域的技术人员还是正在寻求解决方案的...
10. **调试与测试**:为了确保游戏的稳定性和可玩性,开发者需要掌握如何使用Java的调试工具,编写单元测试,以及进行性能测试。 通过研究这个Java版的捕鱼达人游戏源码,开发者不仅可以提升Java编程技能,还能学习...
《跟益达学Solr5之玩转post.jar》这篇博文主要探讨了如何利用Solr的`post.jar`工具进行数据导入,这是Solr提供的一个非常实用的功能,用于快速将各种格式的数据导入到Solr索引中。在这个过程中,我们不仅会了解`post...
"玩转android.zip"中的MyAndroid项目提供了实际操作的机会,你可以: 1. 分析项目结构,理解Kotlin在模块化、依赖注入等方面的应用。 2. 深入研究业务逻辑,了解如何使用Kotlin特性和Android框架协同工作。 3. 学习...
同时,为了优化性能,开发者可能会使用数据结构和算法,如数组、列表、栈或队列,来高效地存储和处理游戏数据。 总之,"Java小游戏 netbeans自作"项目涵盖了Java编程基础、GUI设计、随机数生成、事件处理、面向对象...
需要注意的是,这个过程可能会遇到一些挑战,例如类型转换问题、内存管理(Java与Objective-C的垃圾回收机制不同)、以及可能的性能优化等。此外,由于iOS的封闭性,调试过程可能比在Android上更为复杂。 总结起来...
10. **优化与性能**:考虑如何提高游戏性能,例如减少不必要的计算,优化数据结构,或者通过缓存提高访问速度。 以上就是基于Java实现俄罗斯方块的一些关键知识点。通过这个项目,你不仅可以深入理解Java编程,还能...
【Java黑白棋源代码解析】 Java黑白棋,也被称为反棋或翻转棋,是一种流行的双人策略游戏。在这个项目中,我们主要关注的是如何...在实际开发过程中,还需要不断优化代码,提高性能,以及注重代码的可读性和可维护性。
算法设计的好坏直接影响到游戏的性能和用户体验,因此需要精心优化。 此外,为了使游戏具有可玩性,还需要实现解谜逻辑。这可能涉及到魔方状态的表示(如使用二维数组或链表存储每个块的状态),以及求解算法(如...