JMH,Microbenchmark部分代码
JMH, Microbenchmark part of the code
我想看看是否有一种方法可以告诉 JMH 只 一个特定的方法,它包含从微基准测试调用的所有方法。
我想使用单元测试作为基础自动创建微基准,这样我就不必手动构建微基准。在我的研究中,我有一个很大的代码库,我做了一些自动修改,希望它们对性能产生影响。到目前为止,我在代码中有 1200 个位置需要修改。自动化是必需的,因为我们想提供一个框架来执行转换,然后自动衡量转换的影响。
这里JMH: don't take into account inner method time提供了一个解决方案,但是我必须手动分离@Start方法中的代码,这似乎与1200个测试用例无关...
你不能,因为它不是微基准测试。
微基准测试意味着在给定确切的环境设置的情况下测量(孤立的)代码段的整体性能特征,包括准备数据,并将其馈送到选择的 method/system 中,测量端到端- 结束指标。这是 JMH 注定要做的:payload 用 @Benchmark
标记,并且是不可分割的测量,有可能逐步消除设置和拆卸工作。
在其他执行的有效负载方法中测量选定的有效负载方法充其量只会令人困惑,无论如何:不知道系统中还有什么,这些单独的指标什么也告诉你.换句话说,您想要的是分析工具,它能够剖析各个部分对指标的影响。这是分析器和 Application Performance Management 系统注定要做的事情。
我想看看是否有一种方法可以告诉 JMH 只 一个特定的方法,它包含从微基准测试调用的所有方法。
我想使用单元测试作为基础自动创建微基准,这样我就不必手动构建微基准。在我的研究中,我有一个很大的代码库,我做了一些自动修改,希望它们对性能产生影响。到目前为止,我在代码中有 1200 个位置需要修改。自动化是必需的,因为我们想提供一个框架来执行转换,然后自动衡量转换的影响。
这里JMH: don't take into account inner method time提供了一个解决方案,但是我必须手动分离@Start方法中的代码,这似乎与1200个测试用例无关...
你不能,因为它不是微基准测试。
微基准测试意味着在给定确切的环境设置的情况下测量(孤立的)代码段的整体性能特征,包括准备数据,并将其馈送到选择的 method/system 中,测量端到端- 结束指标。这是 JMH 注定要做的:payload 用 @Benchmark
标记,并且是不可分割的测量,有可能逐步消除设置和拆卸工作。
在其他执行的有效负载方法中测量选定的有效负载方法充其量只会令人困惑,无论如何:不知道系统中还有什么,这些单独的指标什么也告诉你.换句话说,您想要的是分析工具,它能够剖析各个部分对指标的影响。这是分析器和 Application Performance Management 系统注定要做的事情。