1 package org.oxerr.spring.cache.redis.scored.jmh;
2
3 import org.openjdk.jmh.annotations.Benchmark;
4 import org.openjdk.jmh.annotations.Scope;
5 import org.openjdk.jmh.annotations.State;
6 import org.oxerr.spring.cache.redis.scored.score.resolver.inherited.InheritedScoreResolver;
7 import org.slf4j.Logger;
8 import org.slf4j.LoggerFactory;
9
10 @State(Scope.Benchmark)
11 public class InheritedScoreResolverBenchmark {
12
13 private static final Logger log = LoggerFactory.getLogger(InheritedScoreResolverBenchmark.class);
14
15 private final InheritedScoreResolver inheritedScoreResolver;
16 private final Book book;
17
18 public InheritedScoreResolverBenchmark() {
19 this.inheritedScoreResolver = new InheritedScoreResolver();
20 this.book = new Book("isbn-1234", "version 1", 1L);
21 }
22
23 @Benchmark
24 public void testResolveScore() {
25 this.inheritedScoreResolver.resolveScore(this.book);
26 }
27
28 public static void main(String[] args) {
29 InheritedScoreResolverBenchmark benchmark = new InheritedScoreResolverBenchmark();
30
31 for (int i = 0; i < 100; i++) {
32 long startTime = System.nanoTime();
33
34 benchmark.testResolveScore();
35 long elapsedNanos = System.nanoTime() - startTime;
36
37 log.info("Elapsed nanos: {}", elapsedNanos);
38 }
39 }
40
41 }