java - JMH、Microbenchmark部分代码

标签 java microbenchmark jmh

我想看看是否有一种方法可以告诉 JMH 测量微基准调用的所有方法中的一个特定方法。

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

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

最佳答案

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

微基准测试意味着在给定确切的环境设置的情况下,测量(孤立的)代码段的整体性能特征,包括准备数据,并将其输入到选择的方法/系统中,测量端到端指标。这就是 JMH 注定要做的事情:有效负载用 @Benchmark 标记,并且不可分割地进行测量,并且有可能逐步取消安装和拆卸工作。

无论如何,在其他正在执行的有效负载方法中测量选定的有效负载方法充其量也会令人困惑:在不知道系统中发生了什么的情况下,这些单独的指标不会告诉您任何信息。换句话说,您想要的需要分析工具,能够剖析各个部分对指标的影响。这是分析器和 Application Performance Management 的东西系统注定要做的事情。

关于java - JMH、Microbenchmark部分代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32461182/

相关文章:

java - 如何在 java/oracle ADF 中从整数转换为 oracle.jbo.domain.Number

java - 关于 Android Firebase 检索数据(无 setter /字段错误)

java - (Neo4j非托管扩展API)为什么Neo4j中查询速度取决于数据集的大小?

c++ - 在 C++ 中获得准确的执行时间(微秒)

java - 分支预测不起作用?

java - RX : Run Zipped Observables in parallel?

c++ - 如何优化Rcpp函数(调用另一个R函数)

java - 如何用 Java 编写正确的微基准测试?

Java 8 流不可预测的性能下降,没有明显的原因