diff options
Diffstat (limited to 'kamon-bench/src/main/scala/kamon/bench/instruments/KamonCounterBench.scala')
-rw-r--r-- | kamon-bench/src/main/scala/kamon/bench/instruments/KamonCounterBench.scala | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/kamon-bench/src/main/scala/kamon/bench/instruments/KamonCounterBench.scala b/kamon-bench/src/main/scala/kamon/bench/instruments/KamonCounterBench.scala new file mode 100644 index 00000000..01162d53 --- /dev/null +++ b/kamon-bench/src/main/scala/kamon/bench/instruments/KamonCounterBench.scala @@ -0,0 +1,34 @@ +package kamon.bench.instruments + +import java.nio.LongBuffer +import java.util.concurrent.TimeUnit + +import kamon.metric.instrument.{CollectionContext, LongAdderCounter} +import org.openjdk.jmh.annotations._ + +@State(Scope.Group) +@BenchmarkMode(Array(Mode.AverageTime)) +@OutputTimeUnit(TimeUnit.NANOSECONDS) +@Fork(2) +@Warmup(iterations = 10) +@Measurement(iterations = 10) +class KamonCounterBench { + + val counter: LongAdderCounter = new LongAdderCounter + + val collectionContext = new CollectionContext { + val buffer: LongBuffer = LongBuffer.allocate(33792) + } + + @Benchmark + @Group("rw") + def increment(): Unit = { + counter.increment() + } + + @Benchmark + @Group("rw") + def get(): Long = { + counter.collect(collectionContext).count + } +} |