diff options
author | Diego <diegolparra@gmail.com> | 2018-09-29 19:58:34 -0300 |
---|---|---|
committer | Diego <diegolparra@gmail.com> | 2018-09-29 19:58:34 -0300 |
commit | 98598dfc19b1852e5acbea2802fc0fff1c89a7fc (patch) | |
tree | 1b41531239d33195701075e862cc4d03e469179d /kamon-core-bench/src/main/scala/kamon/bench/ThreadLocalStorageBenchmark.scala | |
parent | b5ba5c442e8cb4b0818cf5ba317654cb7d0ff8dd (diff) | |
download | Kamon-98598dfc19b1852e5acbea2802fc0fff1c89a7fc.tar.gz Kamon-98598dfc19b1852e5acbea2802fc0fff1c89a7fc.tar.bz2 Kamon-98598dfc19b1852e5acbea2802fc0fff1c89a7fc.zip |
ContextHolder
Diffstat (limited to 'kamon-core-bench/src/main/scala/kamon/bench/ThreadLocalStorageBenchmark.scala')
-rw-r--r-- | kamon-core-bench/src/main/scala/kamon/bench/ThreadLocalStorageBenchmark.scala | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/kamon-core-bench/src/main/scala/kamon/bench/ThreadLocalStorageBenchmark.scala b/kamon-core-bench/src/main/scala/kamon/bench/ThreadLocalStorageBenchmark.scala index e67a913e..1bd6f4ce 100644 --- a/kamon-core-bench/src/main/scala/kamon/bench/ThreadLocalStorageBenchmark.scala +++ b/kamon-core-bench/src/main/scala/kamon/bench/ThreadLocalStorageBenchmark.scala @@ -22,14 +22,23 @@ import kamon.context.Storage.Scope import kamon.context.{Context, Key, Storage} import org.openjdk.jmh.annotations._ -@State(Scope.Benchmark) +@State(Scope.Thread) class ThreadLocalStorageBenchmark { - val TestKey: Key[Int] = Key.local("test-key", 0) - val ContextWithKey: Context = Context.create().withKey(TestKey, 43) + var TestKey: Key[Int] = _ + var ContextWithKey: Context = _ - val TLS: Storage = new OldThreadLocal - val FTLS: Storage = new Storage.ThreadLocal + var TLS: Storage = _ + var FTLS: Storage = _ + + @Setup + def setup() = { + TestKey = Key.local("test-key", 0) + ContextWithKey = Context.create().withKey(TestKey, 43) + + TLS = new OldThreadLocal + FTLS = Storage.ThreadLocal() + } @Benchmark @@ -53,6 +62,17 @@ class ThreadLocalStorageBenchmark { scope.close() FTLS.current() } + + @Benchmark + @BenchmarkMode(Array(Mode.AverageTime)) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + @Fork(jvmArgsAppend = Array("-javaagent:library/kanela-agent-0.0.400.jar")) + def superFastThreadLocal: Context = { + val scope = FTLS.store(ContextWithKey) + FTLS.current() + scope.close() + FTLS.current() + } } |