我想看看是否有办法告诉 JMH 只测量一个特定的方法,即从微基准调用的所有方法。
我想以单元测试为基础自动创建微基准,因此我不必手动构建微基准。在我的研究中,我有一个庞大的代码库,我做了一些自动修改,期望它们会对性能产生影响。到目前为止,我在代码中有 1200 个位置被修改。自动化是必要的,因为我们希望提供一个框架来进行转换,然后自动测量转换的影响。
这里JMH:不要考虑提供解决方案的内部方法时间,但是我必须手动分离@Start方法中的代码,这似乎与1200个测试用例无关......
我想看看是否有办法告诉 JMH 只测量一个特定的方法,即从微基准调用的所有方法。
我想以单元测试为基础自动创建微基准,因此我不必手动构建微基准。在我的研究中,我有一个庞大的代码库,我做了一些自动修改,期望它们会对性能产生影响。到目前为止,我在代码中有 1200 个位置被修改。自动化是必要的,因为我们希望提供一个框架来进行转换,然后自动测量转换的影响。
这里JMH:不要考虑提供解决方案的内部方法时间,但是我必须手动分离@Start方法中的代码,这似乎与1200个测试用例无关......
你不能,因为它不是微基准测试。
微基准测试意味着在给定准确的环境设置(包括准备数据,并将其输入到选择的方法/系统中,测量端到端指标)的情况下,作为整体测量(隔离的)代码段的性能特征。这是 JMH 注定要做的:有效载荷用 标记@Benchmark
,并且是不可分割地测量的,有可能逐步取消设置和拆卸工作。
无论如何,在其他正在执行的有效负载方法中测量选定的有效负载方法充其量是令人困惑的:在不知道系统中还发生了什么的情况下,这些单独的指标什么也不会告诉你。换句话说,您想要的需要能够剖析各个部分对指标的影响的分析工具。这是分析器和应用程序性能管理系统注定要做的事情。