常用 Java Profiling 工具的分析与比较
2010-08-13 00:00:00 来源:WEB开发网CodePro Profiler: CPU 快照包含的统计数据类型有:
包的组成关系,细化到包含的类及类中的方法。
方法的调用关系。以树结构表示,根据根节点表示的对象的不同,分为三种类型:以每个线程为根节点的方法调用关系,以整个线程为根节点的方法调用关系,以及以每个方法为根节点的方法调用关系。对于树中出现的代表方法的每个节点,列出了该方法的运行时间或运行时间百分比,以及由该方法生成的对象个数和为这些对象分配的内存大小。
方法的被调用关系。该关系以树结构表示,其中根节点为某个指定的方法,每个节点的子节点为父节点的调用者。
热点列表:包含了 CPU 占用时间排前的一些方法。
YourKit Java Profiler:CPU 快照包含的统计数据类型与 CodePro Profiler 类似;
JProfiler:与 CodePro Profiler 相比,缺少以每个方法为根节点的方法调用关系。因此当要查看以某个方法为调用起点的调用关系时,需要到以线程为根的树结构当中去查找。另外,方法的被调用关系不是以树结构来表示的,而是以图的方式来显示的,当调用关系比较复杂的时候,很难在一个屏幕中看到一个全局关系图。
内存快照包含的统计数据类型
TPTP:包含了类实例的内存分配情况,包括实例化的对象个数,以及这些对象的本身占用内存的大小。相对于其它 Java Profiler 工具,TPTP 的内存快照包含的统计数据类型比较少。
CodePro Profiler: 包含的统计数据有
类实例的内存分配情况,包括实例化的对象个数,以及这些对象的 shallow 和 retained 大小。(Shallow size 就是对象本身占用内存的大小,不包含对其他对象的引用;Retained size 是该对象自己的 shallow size,加上从该对象能直接或间接访问到的 shallow size 之和,即该对象被 GC 之后所能回收到内存的总和)。
更多精彩
赞助商链接