JMH,Microbenchmark代码的一部分

时间:2015-09-08 15:02:53

标签: java microbenchmark jmh

我想看看是否有办法告诉JMH在微基准测试中调用的所有方法中测量 JUST 一个特定的方法。

我想使用单元测试作为基础自动创建微基准测试,因此我不必手动构建微基准测试。在我的研究中,我有一个很大的代码库,我做了一些自动修改,期望它们对性能产生影响。到目前为止,我在代码中有1200个位置被修改。需要自动化,因为我们想要提供一个框架来进行转换,然后自动测量转换的影响。

这里提供了JMH: don't take into account inner method time解决方案,但是我必须手动分离@Start方法中的代码,这似乎不适用于1200个测试用例......

1 个答案:

答案 0 :(得分:2)

你不能,因为它不是微基准测试。

微观标记意味着在给定精确的环境设置(包括准备数据)并将其馈入所选方法/系统,测量端到端指标的情况下,测量(隔离的)代码段的整体性能特征。那就是JMH注定要做的事情:有效载荷用@Benchmark标记,并且不可分割地测量,有可能逐步取消设置和拆卸工作。

在其他正在执行的有效载荷方法中测量选定的有效载荷方法无论如何都会令人困惑:如果不知道系统中还有其他,那些单独的指标就什么都不告诉你。换句话说,您想要的是需要分析工具,能够剖析各个部分对指标的影响。这是分析器和Application Performance Management系统注定要做的事情。