繁体   English   中英

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

[英]Profiling only certain parts/classes of a Java application

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

如何仅描述我关心的Java应用程序的一部分? 有没有办法说“仅配置这两个类”,或者以编程方式插入“从此处开始配置文件”指令?

您可以使用VisualVM来分析您的代码。 我不只对特定类进行概要分析,但是VisualVm可以开始监视已经运行的程序。 另外,如果您使用的是Eclipse,那么当您从Eclipse启动程序时,可以使用启动器来启动分析器并将其附加到您的程序。

编辑:
我做了一些查找,“探查器”选项卡具有“设置”复选框。 选择此选项时,它将显示一个文本框,您可以在其中设置过滤器,以了解应针对CPU使用情况配置哪些类。

我假设您有单元测试,并且您可以构建一个单元测试或应用程序,而该单元测试或应用程序只对您感兴趣的分析部分起作用。 这样,您可以单独对其进行性能调整,因为它是唯一运行的东西。

至于仅对选定的类进行概要分析,大多数探查器都允许设置过滤器,因此仅检测几个类。

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

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

  • 开始记录(选择CPU)
  • 等待当前事件结束
  • 停止记录(选择CPU)。

看一下此屏幕显示,显示如何配置触发器。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM