仅分析Java应用程序的某些部分/类

时间:2012-02-23 15:34:48

标签: java performance profiling

我正在编写一个java应用程序,它读取输入,填充数据结构,然后对它们进行一些计算。我想优化最终的计算部分,因为使用真实的大输入它可以控制执行时间。使用巨型输入分析整个应用程序将需要永远。因此,我为性能测试加载了一个中等大小的输入,但输入和预处理时间在配置文件中占主导地位。

我如何只分析我关心的java应用程序的一部分?有没有办法说“只分析这两个类”,或者以编程方式插入“start profiling here”指令?

3 个答案:

答案 0 :(得分:1)

您可以使用VisualVM来分析您的代码。我不知道只分析特定的类,但VisualVm可以开始观看已经运行的程序。此外,如果您正在使用Eclipse,那么当您从Eclipse启动时,有一个启动器可用于启动并将探查器附加到您的程序。

修改
我做了一些查找,Profiler选项卡有一个设置复选框。选择此选项后,它将显示一个文本框,您可以在其中设置有关CPU使用情况应分析的类的过滤器。

答案 1 :(得分:0)

我假设你有单元测试,你可以构建一个单元测试或应用程序,它只对您感兴趣的部分进行分析。通过这种方式,你可以单独调整它,因为它是唯一运行的东西。

答案 2 :(得分:0)

对于仅分析选定的类,大多数分析器允许设置过滤器,以便只检测几个类。

在您的情况下,听起来您还希望在调用特定方法时启动和停止分析。

JProfiler中,您可以为所需方法添加方法触发器,并为触发器添加3个操作:

  • 开始录制(选择了CPU)
  • 等待当前事件完成
  • 停止录制(选择了CPU)。

查看显示触发器配置方式的this screen cast

免责声明:我公司开发JProfiler。