I use OpenJDK JMH 0.9.3 and sometimes i get a result log file like this one below. What means (*interrupt*) here?
Forking 1 times using command: [/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/...] # Run progress: 53,85% complete, ETA 00:01:26 # Fork: 1 of 1 # Warmup Iteration 1: 19950765,000 us/op # Warmup Iteration 2: (*interrupt*) (*interrupt*) (*interrupt*) 18107134,000 us/op # Warmup Iteration 3: (*interrupt*) 14439157,500 us/op Iteration 1: 13571806,000 us/op Iteration 2: 7484946,500 us/op Iteration 3: (*interrupt*) 12386565,000 us/op Iteration 4: (*interrupt*) 7245477,500 us/op Iteration 5: (*interrupt*) 9047236,000 us/op Result: 9947206,200 ±(99.9%) 11103651,130 us/op [Average] Statistics: (min, avg, max) = (7245477,500, 9947206,200, 13571806,000), stdev = 2883582,937 Confidence interval (99.9%): [-1156444,930, 21050857,330]
That means your workload was interrupted by JMH, quite possibly because it overrun the iteration time. It prints "(interrupt)" to let you know the score was obtained with active intervention of JMH, and may be unreliable.
You can annotate your benchmark with @Timeout(time = 1, timeUnit = TimeUnit.HOURS)
annotation and it will know that it will take longer. By default when you run some batch Measurement (without time limit set), it will default to 10 minutes time limit.