Fix performance regression in FastThreadLocal microbenchmark. Fixes #4402
Motivation: As reported in #4402, the FastThreadLocalBenchmark shows that the JDK ThreadLocal is actually faster than Netty's custom thread local implementation. I was looking forward to doing some deep digging, but got disappointed :(. Modifications: The microbenchmark was not using FastThreadLocalThreads and would thus always hit the slow path. I updated the JMH command line flags, so that FastThreadLocalThreads would be used. Result: FastThreadLocalBenchmark shows FastThreadLocal to be faster than JDK's ThreadLocal implementation, by about 56% in this particular benchmark. Run on OSX El Capitan with OpenJDK 1.8u60. Benchmark Mode Cnt Score Error Units FastThreadLocalBenchmark.fastThreadLocal thrpt 20 55452.027 ± 725.713 ops/s FastThreadLocalBenchmark.jdkThreadLocalGet thrpt 20 35481.888 ± 1471.647 ops/s
This commit is contained in:
parent
0c8fe18d3c
commit
e12613a018
@ -60,8 +60,8 @@ public class AbstractMicrobenchmark {
|
||||
"-XX:MaxDirectMemorySize=768m", "-XX:+AggressiveOpts", "-XX:+UseBiasedLocking",
|
||||
"-XX:+UseFastAccessorMethods", "-XX:+UseStringCache", "-XX:+OptimizeStringConcat",
|
||||
"-XX:+HeapDumpOnOutOfMemoryError", "-Dio.netty.noResourceLeakDetection",
|
||||
"-Dharness.executor=CUSTOM",
|
||||
"-Dharness.executor.class=io.netty.microbench.util.AbstractMicrobenchmark$HarnessExecutor"
|
||||
"-Djmh.executor=CUSTOM",
|
||||
"-Djmh.executor.class=io.netty.microbench.util.AbstractMicrobenchmark$HarnessExecutor"
|
||||
};
|
||||
|
||||
static {
|
||||
|
Loading…
Reference in New Issue
Block a user