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



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

我如何只评测我关心的java应用程序的一部分?有没有办法说"只评测这两个类",或者通过编程插入"在这里开始评测"指令?

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

编辑:
我看了一下,"档案器"选项卡上有一个"设置"复选框。当您选择此选项时,它将显示一个文本框,您可以在其中设置过滤器,确定哪些类应该针对CPU使用情况进行分析。

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

由于只分析选定的类,大多数分析程序都允许设置过滤器,因此只检测几个类。

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

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

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

看看这个屏幕截图,它显示了触发器是如何配置的。

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

相关内容

最新更新