aboutsummaryrefslogtreecommitdiff
path: root/kamon-bench/src/main/scala/kamon/bench/instruments/KamonCounterBench.scala
diff options
context:
space:
mode:
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.scala34
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
+ }
+}