由于Java 7(尽管功能已经显着演变),因此使用飞行记录器和任务控制
>
可以通过飞行记录器和任务控制
飞行记录仪和任务控制的关键绩效指标提供大量的性能指标。 关键指标属于几类:
- cpu用法: 这涵盖了诸如CPU花费不同方法(调用堆栈)之类的指标,识别代码的热点和计算昂贵的部分。 您可以看到特定线程,方法甚至单个代码线所消耗的CPU的百分比。
-
>内存使用情况:
-
垃圾收集(GC)活动:
这是Java性能调整的重要领域。 FR和MC显示了各种垃圾收集阶段,其持续时间以及回收的记忆量。 分析这些数据有助于确定效率低下的GC策略或开销过多的垃圾收集。 您可以查明长时间的根本原因,并优化应用程序的垃圾收集器配置。-
i/o操作:- 这些工具跟踪所花费的时间执行I/O操作,包括同步和异常。这包括网络I/O(从读取并写入插座)和磁盘I/O(文件操作)。 识别慢速I/O操作对于优化应用程序响应能力至关重要。
- 线程活动:您可以监视单个线程的状态和活动,包括其执行时间,阻止时间和等待时间。这有助于识别僵局,竞争和效率低下的线程管理。
- 锁和同步: fr和mc提供有关锁定争论的详细信息,使您可以识别由过度同步引起的瓶颈。 分析锁定获取和释放时间有助于优化同步机制。
方法分析:
深入介入单个方法执行时间,使您可以在良好的范围内确定性能瓶颈。方法:
- 识别可疑区域:首先检查高级指标,例如CPU使用,内存使用情况和垃圾收集活动。 寻找明显的尖峰或异常高的值,表明潜在的瓶颈。
-
>专注于热点:使用MC中的呼叫树视图来查明消耗CPU时间最多的方法。这确定了需要优化的代码部分。 请注意执行方法本身所花费的时间以及在调用的方法上花费的时间。
-
>分析内存使用情况:检查堆内存使用以识别内存泄漏或过多的对象分配。 使用对象分配分析功能来确定应用程序的哪些部分创建最多的对象。 研究垃圾收集日志以识别长时间暂停的潜在原因。
- 研究I/O操作:分析I/O操作以发现缓慢或效率低下的I/O调用。 寻找过多的网络延迟或慢速磁盘访问。
-
>检查线程活动:使用线程分析来识别经常被阻止或等待的线程。 这可以突出显示僵局,资源争夺或效率低下的线程管理。
- 相关性和根本原因分析:使用MC的集成特征来关联不同的指标并查明性能问题的根本原因。 例如,高CPU使用可能与特定方法,内存分配或I/O操作有关。
-
迭代改进:故障排除通常是迭代的。 进行了优化后,重新运行的飞行记录器以验证更改是否改善了性能。
使用飞行记录器和任务控制
> - 的最佳实践仅记录与您最初的性能相关的基本指标开始。 避免一次录制所有内容,因为它可以生成过多的数据并减慢您的应用程序。
>使用适当的记录设置:- 根据您正在调查的性能问题选择正确的记录设置。 例如,较短的记录持续时间可能足以进行快速调查,而需要更长的记录来捕获不经常发生的事件。
- >定期分析记录: 定期分析记录以尽早确定潜在的问题,而不是等待通过出现的主要绩效问题。任务控制。 了解它们的含义以及它们如何相互关系。
-
>策略性地使用JFR事件:了解可用的不同JFR事件,并选择与您的特定需求最相关的事件。
>>>>>>>>>- >与其他分析工具相结合:>使用飞行记录器和任务控制与其他配置文件控制,例如Jprofiler或YourKit,以更全面地了解您的应用程序的性能。
>
::::>>:>通过试用和学习的最佳方法和实验。 从简单的应用程序开始并逐渐提高复杂性。>通过遵循这些最佳实践,您可以有效地利用飞行记录器和任务控制的力量来优化Java应用程序的性能并有效地识别和解决性能瓶颈。>>>>>>>>>>>>>>>>>>>>>
以上是使用飞行记录仪进行分析Java应用程序&任务控制的详细内容。更多信息请关注PHP中文网其他相关文章!