Adding micro-benchmarks for traceId and spanId generation (#2170)

This commit is contained in:
Prashant Srivastava 2020-12-01 16:41:47 -08:00 committed by GitHub
parent e90a6a886b
commit 6bbe8d47dc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 44 additions and 0 deletions

View File

@ -3,6 +3,7 @@ plugins {
id "maven-publish"
id "ru.vyarus.animalsniffer"
id "me.champeau.gradle.jmh"
}
description = 'OpenTelemetry SDK AWS Instrumentation Support'

View File

@ -0,0 +1,43 @@
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/
package io.opentelemetry.sdk.extension.aws;
import io.opentelemetry.sdk.extension.aws.trace.AwsXrayIdGenerator;
import java.util.concurrent.TimeUnit;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
import org.openjdk.jmh.annotations.Fork;
import org.openjdk.jmh.annotations.Measurement;
import org.openjdk.jmh.annotations.Mode;
import org.openjdk.jmh.annotations.OutputTimeUnit;
import org.openjdk.jmh.annotations.Scope;
import org.openjdk.jmh.annotations.State;
import org.openjdk.jmh.annotations.Warmup;
@State(Scope.Benchmark)
public class AwsXrayIdGeneratorBenchmark {
private final AwsXrayIdGenerator idGenerator = new AwsXrayIdGenerator();
@Benchmark
@Measurement(iterations = 15, time = 1)
@Warmup(iterations = 5, time = 1)
@OutputTimeUnit(TimeUnit.NANOSECONDS)
@BenchmarkMode(Mode.AverageTime)
@Fork(1)
public String generateTraceId() {
return idGenerator.generateTraceId();
}
@Benchmark
@Measurement(iterations = 15, time = 1)
@Warmup(iterations = 5, time = 1)
@OutputTimeUnit(TimeUnit.NANOSECONDS)
@BenchmarkMode(Mode.AverageTime)
@Fork(1)
public String generateSpanId() {
return idGenerator.generateSpanId();
}
}