常用 Java Profiling 工具的分析与比较
2010-08-13 00:00:00 来源:WEB开发网目前市面上的 Java Profiler 工具采用的信息收集方法通常是以上三种方法的任意组合。
Profiler 工具功能简介
虽然市场上的 Java Profiler 工具有不少,但是基本功能大多相似,本节首先对这些基本功能进行介绍。
遥测(Telemetry):遥测是一种用来查看应用程序运行行为的最简单的方法。通常会有多个视图(View)分别实时地显示 CPU 使用情况、内存使用情况、线程状态以及其他一些有用的信息,以便用户能很快地发现问题的关键所在。
CPU Telemetry 视图一般用于显示整个应用程序的 CPU 使用情况,有些工具还能显示应用程序中每个线程的 CPU 使用情况。
Memory Telemetry 视图一般用于显示堆内存和非堆内存的分配和使用情况。
Garbage Collection Telemetry 视图显示了 JVM 中垃圾收集器的详细信息。
Threads Telemetry 视图一般用于显示当前运行线程的个数、守护进程的个数等信息。
Classes Telemetry 视图一般用于显示已经载入和还没有载入的类的数量。
快照(snapshot):应用程序启动后,profiler 工具开始收集各种执行数据,其中一些数据直接显示在遥测视图中,而另外大部分数据被保存在内部,直到用户要求获取快照,基于这些保存的数据的统计信息才被显示出来。快照包含了应用程序在一段时间内的执行信息,通常有两种类型的快照:CPU 快照和内存快照。
CPU 快照主要包含了应用程序中函数的调用关系及运行时间,这些信息通常可以在 CPU 快照视图中进行查看。
内存快照则主要包含了内存的分配和使用情况、载入的所有类、存在的对象信息及对象间的引用关系。这些信息通常可以在内存快照视图中进行查看。
CPU Profiling:CPU Profiling 的主要目的是统计函数的调用情况及执行时间,或者更简单的情况就是统计应用程序的 CPU 使用情况。通常有两种方式来显示 CPU Profiling 结果:CPU 遥测和 CPU 快照。
更多精彩
赞助商链接