lexburner commented on issue #2433: [Dubbo-random enhance] replace Random with ThreadLocalRandom URL: https://github.com/apache/incubator-dubbo/pull/2433#issuecomment-418315744 use JMH to benchmark the performance of these two class ``` @BenchmarkMode({Mode.AverageTime}) @OutputTimeUnit(TimeUnit.NANOSECONDS) @Warmup(iterations = 3, time = 5) @Measurement(iterations = 3, time = 5) @Threads(10) @Fork(1) @State(Scope.Benchmark) public class RandomBenchmark { Random random = new Random(); ThreadLocalRandom threadLocalRandom = ThreadLocalRandom.current(); @Benchmark public int random() { return random.nextInt(); } @Benchmark public int threadLocalRandom() { return threadLocalRandom.nextInt(); } public static void main(String[] args) throws RunnerException { Options opt = new OptionsBuilder() .include(RandomBenchmark.class.getSimpleName()) .build(); new Runner(opt).run(); } } ``` and the output is shown below ``` Benchmark Mode Cnt Score Error Units RandomBenchmark.random avgt 3 648.175 ± 267.727 ns/op RandomBenchmark.threadLocalRandom avgt 3 18.935 ± 19.511 ns/op ```
---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected] With regards, Apache Git Services --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
