如何在执行期间查看Java程序中每个方法所花费的时间

时间:2013-05-17 06:07:04

标签: java optimization profiler

我正在尝试查找执行时Java程序调用的每个方法所花费的时间。我不想用System.currentTimeMillis()丢弃我的代码。也许,像分析器或IDE插件,但我不确定这是否是它的名称。有人能指点我正确的方向来帮助我吗?

示例代码

public static void main(String[] args){
   Obj A = new Obj();
   ObjDiff B = new ObjDiff();
   A.callMe();
   B.callMeToo();
}

工具/框架

  • 的Eclipse
  • Struts的

我想要什么

  1. 实例化Obj A
  2. 所需的时间
  3. 实例化ObjDiff B
  4. 所需的时间
  5. 运行A.callMe()
  6. 所需的时间
  7. 运行B.callMeToo()
  8. 所需的时间

    非常感谢任何帮助。

    干杯,
    Rohitesh

    编辑
    我已经安装了VisualVM并将其用作独立应用程序。它很有帮助。但是,我仍然没有解决我的主要问题。方法明智的我无法查看内存/ CPU使用情况。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

我也会推荐VisualVM,基本但非常有用。建议您在与应用程序顶部相同的Java 7 JVM上运行它,以避免兼容性问题。如果您需要更多高级功能,例如跟踪用户与Web服务器的交互,您可以查看更精细的分析器,如Introscope。

答案 1 :(得分:2)

VisualVM是一个很好的工具。 我最喜欢的(到目前为止)是JProfiler。如果你不是一家公司,它不是免费且非常昂贵,但你可以评估它10天。