`
loovle
  • 浏览: 142690 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

常用Java Profiling工具的分析与比较

    博客分类:
  • Java
阅读更多
Java Profiler 工具比较

  本章节将从如下几个方面对上述工具进行比较:

  与 Eclipse 的集成性

  TPTP:是一款基于 Eclipse 开发的插件,因此与 eclipse 的集成性很好。安装成功后,对 TPTP 的一切设置与操控都可以在 eclipse 中完成;另外,profiling 的结果也可以在 eclipse 中进行查询。

  CodePro Profiler: 与 TPTP 类似,CodePro Profiler 也是一款基于 eclipse 开发的插件,因此与 eclipse 的集成性很好好。用户在 eclipse 中就可以完成对 profiling 的所有操作。

  YourKit Java Profiler: YourKit Java Profiler 可以说是一个比较独立的工具,安装成功后,用户可以直接在 eclipse 中启动 YourKit Java Profiler 并对 profiling 选项进行配置,但是用户必须在 YourKit Java Profiler 工具中对 Profiling preferrence 进行配置,而且 profiling 信息必须在 YourKit Java Profiler 中进行查看。因此和 Eclipse 的集成度一般。

  JProfiler: JProfiler 也是一款比较独立的工具,安装成功后,用户可以直接在 eclipse 中启动 JProfiler,其他所有操作必须回到 JProfiler 工具中进行。因此和 Eclipse 的集成性不好。

  遥测种类

  TPTP:目前使用的 4.6.2 的版本只提供了线程 Telemetry。

  CodePro Profiler: 总共有五个类型:CPU, 内存 , 线程 , 载入的类以及垃圾收集。

  YourKit Java Profiler: 与 CodePro Profiler 相比,缺少载入类的监测。

  JProfiler: 与 CodePro Profiler 一样,总共有五个类型的监测方法。

       CPU 快照包含的统计数据类型

  TPTP: CPU 快照包含的统计数据有:

  包的组成关系,细化到包含的类及类中的方法。

  方法的调用关系:以每个线程为根节点的方法调用信息,对于树中出现的代表方法的每个节点,列出了该方法的运行时间或运行时间百分比,以及该方法被调用的次数。

  方法被调用情况:列出了直接调用某方法的其他方法,以及这些方法调用该方法的次数及相关运行时间。

  热点列表:包含了 CPU 占用时间排列前十的方法、类或包。

  CodePro Profiler: CPU 快照包含的统计数据类型有:

  包的组成关系,细化到包含的类及类中的方法。

  方法的调用关系。以树结构表示,根据根节点表示的对象的不同,分为三种类型:以每个线程为根节点的方法调用关系,以整个线程为根节点的方法调用关系,以及以每个方法为根节点的方法调用关系。对于树中出现的代表方法的每个节点,列出了该方法的运行时间或运行时间百分比,以及由该方法生成的对象个数和为这些对象分配的内存大小。

  方法的被调用关系。该关系以树结构表示,其中根节点为某个指定的方法,每个节点的子节点为父节点的调用者。

  热点列表:包含了 CPU 占用时间排前的一些方法。

  YourKit Java Profiler:CPU 快照包含的统计数据类型与 CodePro Profiler 类似;

  JProfiler:与 CodePro Profiler 相比,缺少以每个方法为根节点的方法调用关系。因此当要查看以某个方法为调用起点的调用关系时,需要到以线程为根的树结构当中去查找。另外,方法的被调用关系不是以树结构来表示的,而是以图的方式来显示的,当调用关系比较复杂的时候,很难在一个屏幕中看到一个全局关系图。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics