View Javadoc
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.annotated.AnnotatedScoreResolver;
7   import org.slf4j.Logger;
8   import org.slf4j.LoggerFactory;
9   import org.springframework.data.annotation.Version;
10  
11  @State(Scope.Benchmark)
12  public class AnnotatedScoreResolverBenchmark {
13  
14  	private static final Logger log = LoggerFactory.getLogger(AnnotatedScoreResolverBenchmark.class);
15  
16  	private final AnnotatedScoreResolver annotatedScoreResolver;
17  	private final Book book;
18  
19  	public AnnotatedScoreResolverBenchmark() {
20  		this.annotatedScoreResolver = new AnnotatedScoreResolver(Version.class);
21  		this.book = new Book("isbn-1234", "version 1", 1L);
22  	}
23  
24  	@Benchmark
25  	public void testResolveScore() {
26  		this.annotatedScoreResolver.resolveScore(this.book);
27  	}
28  
29  	public static void main(String[] args) {
30  		AnnotatedScoreResolverBenchmark benchmark = new AnnotatedScoreResolverBenchmark();
31  
32  		for (int i = 0; i < 100; i++) {
33  			long startTime = System.nanoTime();
34  			// ... the code being measured ...
35  			benchmark.testResolveScore();
36  			long elapsedNanos = System.nanoTime() - startTime;
37  
38  			log.info("Elapsed nanos: {}", elapsedNanos);
39  		}
40  	}
41  
42  }