1+ package pl .wavesoftware .eid .exceptions ;
2+
3+ import org .junit .Test ;
4+ import org .openjdk .jmh .annotations .Benchmark ;
5+ import org .openjdk .jmh .annotations .Mode ;
6+ import org .openjdk .jmh .annotations .Threads ;
7+ import org .openjdk .jmh .infra .Blackhole ;
8+ import org .openjdk .jmh .results .RunResult ;
9+ import org .openjdk .jmh .runner .Runner ;
10+ import org .openjdk .jmh .runner .options .Options ;
11+ import org .openjdk .jmh .runner .options .OptionsBuilder ;
12+ import org .openjdk .jmh .runner .options .TimeValue ;
13+
14+ import java .util .Collection ;
15+ import java .util .Date ;
16+ import java .util .concurrent .TimeUnit ;
17+
18+ import static org .assertj .core .api .Assertions .assertThat ;
19+
20+ /**
21+ * @author Krzysztof Suszyński <krzysztof.suszynski@wavesoftware.pl>
22+ * @since 2016-03-24
23+ */
24+ public class EidIT {
25+
26+ private static final int OPERATIONS = 1000 ;
27+
28+ @ Test
29+ public void doBenckmarking () throws Exception {
30+ Options opt = new OptionsBuilder ()
31+ .include (this .getClass ().getName () + ".*" )
32+ .mode (Mode .Throughput )
33+ .timeUnit (TimeUnit .MICROSECONDS )
34+ .operationsPerInvocation (OPERATIONS )
35+ .warmupTime (TimeValue .seconds (1 ))
36+ .warmupIterations (2 )
37+ .measurementTime (TimeValue .seconds (1 ))
38+ .measurementIterations (5 )
39+ .threads (Threads .MAX )
40+ .forks (1 )
41+ .shouldFailOnError (true )
42+ .shouldDoGC (true )
43+ .build ();
44+
45+ Runner runner = new Runner (opt );
46+ Collection <RunResult > results = runner .run ();
47+ assertThat (results ).hasSize (2 );
48+ }
49+
50+ @ Benchmark
51+ public void control (Blackhole bh ) {
52+ for (int i = 0 ; i < OPERATIONS ; i ++) {
53+ bh .consume (new Date ());
54+ }
55+ }
56+
57+ @ Benchmark
58+ public void eid (Blackhole bh ) {
59+ for (int i = 0 ; i < OPERATIONS ; i ++) {
60+ bh .consume (new Eid ("20160324:223837" ));
61+ }
62+ }
63+ }
0 commit comments