当前位置: 首页 > 知识库问答 >
问题:

使用JMH计算指标

南宫龙野
2023-03-14

我如何使用来计算JMH中的CPU时间和内存量?例如,我有:Code:

@State(Scope.Thread)
@BenchmarkMode(Mode.All)
public class JMHSample_My {

    int x = 1;
    int y = 2;

    @GenerateMicroBenchmark
    public int measureAdd() {
        return (x + y);
    }

    @GenerateMicroBenchmark
    public int measureMul() {
        return (x * y);
    }

    public static void main(String[] args) throws RunnerException {
        Options opt = new OptionsBuilder()
                .include(".*" + JMHSample_My.class.getSimpleName() + ".*")
                .warmupIterations(5)
                .measurementIterations(5)
                .forks(1)
                .build();

        new Runner(opt).run();
    }
}

结果:

Benchmark                  Mode   Samples         Mean   Mean error    Units
JMHSample_My.measureAdd    thrpt         5  1060579.757    39506.950   ops/ms

JMHSample_My.measureMul    thrpt         5  1046872.684    79805.116   ops/ms

JMHSample_My.measureAdd     avgt         5        0.000        0.000    ms/op

JMHSample_My.measureMul     avgt         5        0.000        0.000    ms/op

JMHSample_My.measureAdd   sample   9549793        0.000        0.000    ms/op

JMHSample_My.measureMul   sample   9287002        0.000        0.000    ms/op

JMHSample_My.measureAdd       ss         5        0.001        0.000       ms

JMHSample_My.measureMul       ss         5        0.001        0.000       ms

我可以看到时间请求的数量,测试的平均时间,但看不到CPU使用和内存使用的平均数量。这可以通过JMH实现吗?

共有1个答案

温举
2023-03-14

对于内存使用,您可以在构建runner选项时使用addProfiler方法添加GCHS_GC探查器。

至于CPU使用情况,基准测试通常会自然地消耗100%的可用CPU。然而,您应该检查其他可用的配置文件,看看它们是否会产生对您有用的信息。

 类似资料:
  • 我有一个EVP_PKEY结构中的RSA公钥(从PEM文件加载,以------开始公钥------)。现在,我希望能够使用OpenSSL API显示代码中该密钥的指纹。(目的是允许操作员在信任JWT之前使用RS256验证其密钥)。 不幸的是,到目前为止,我发现的所有资源要么在命令行上使用ssh-keygen,要么使用X.509证书的指纹,但不使用公钥。 那么,如何使用OpenSSL API获取存储在

  • 问题内容: 我正在使用jmh 使用maven并按照http://openjdk.java.net/projects/code- tools中 建议的命令行方法对一个简单的应用程序进行基准测试。成功设置并建立基准后,我可以使用avgt模式获得以下基准结果: 我不确定如何解释此输出,但我确定某些地方出了错…?知道什么或如何调试吗? 问题答案: JMH输出使用扩展的Unicode字符。特别是, ?10

  • 问题内容: 我需要为包含以下文本的文本文件计算Unigram,BiGrams和Trigrams: “囊性纤维化仅在美国就影响了30,000名儿童和年轻人。吸入盐水雾可以减少填充囊性纤维化患者气道的脓液和感染,尽管副作用包括令人讨厌的咳嗽症状和难闻的味道。这就是结论。发表在本周《新英格兰医学杂志》上的两项研究。 我从Python开始,并使用以下代码: http://www.daniweb.com/s

  • 问题内容: 有没有一种方法可以使用C计算文件中的行数? 问题答案: 如果要以编程方式执行此操作,请以文本模式打开文件并执行fgetc()操作,直到到达文件末尾。记下调用fgetc的次数。

  • 我有一个多个圆圈的图像,圆圈内有热点区域,具有高强度(高像素值)和冷点区域(低像素值)。我想用Python中的OpenCV计算每个圆的加权质心。我正在使用这段代码: 好的,这段代码只需获取二值图像,提取所有圆,并找到每个圆的轮廓。 问题是,我需要找到RGB/灰度图像(考虑像素强度)的加权质心,而不是二值图像。我该怎么做? 非常感谢。

  • 我有一个rdd(String,Int),它是按键排序的 现在,我想用零开始第一个键的值,并将后续键作为前一个键的和。 例如:c1=0,c2=c1的值,c3=(c1值c2值),c4=(c1..c3值)预期输出: 有可能做到这一点吗?我用地图试过了,但总和没有保存在地图里。