2015-09-08 27 views
1

我想看看是否有办法告诉JMH从微基准调用的所有方法中测量一种特定的方法。JMH,Microbenchmark部分代码

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

这里JMH: don't take into account inner method time提供了一种解决方案,但是我会在@启动方法手动分离代码和似乎并不practicall 1200测试用例做...

+0

看着JMH的代码,它似乎是不可能的.. –

回答

2

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

微指向意味着测量整个(孤立的)代码段的性能特征,给定准确的环境设置,包括准备数据,并将其提供到选择的方法/系统中,测量端到端指标。这是JMH注定要做的事情:有效载荷标有@Benchmark,并且它的测量不可分割,可能会逐步消除安装和拆卸工作。

测量其他有效载荷执行方法中选择的有效载荷的方法将是混乱的,充其量,总之:在不知道还有什么系统是怎么回事,那些个别指标告诉你什么。换句话说,你想要什么样的分析工具,能够分析各个部分对指标的影响。这是Profiler和Application Performance Management系统注定要做的事情。