Skip to content

Instantly share code, notes, and snippets.

@wololock
Created November 12, 2018 09:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wololock/bec6c6cd09c80a2868eca8cce7a016a2 to your computer and use it in GitHub Desktop.
Save wololock/bec6c6cd09c80a2868eca8cce7a016a2 to your computer and use it in GitHub Desktop.
Benchmarking Groovy tail-recursive functions with JMH
10:34:35: Executing tasks 'clean jmh'...
> Task :clean
> Task :compileJava
> Task :compileGroovy
> Task :processResources NO-SOURCE
> Task :classes
> Task :compileTestJava NO-SOURCE
> Task :compileTestGroovy NO-SOURCE
> Task :processTestResources NO-SOURCE
> Task :testClasses UP-TO-DATE
> Task :compileJmhJava NO-SOURCE
> Task :compileJmhGroovy
> Task :processJmhResources NO-SOURCE
> Task :jmhClasses
> Task :jmhRunBytecodeGenerator
Processing 0 classes from /home/wololock/workspace/groovy-jmh/build/classes/java/jmh with "reflection" generator
Processing 1 classes from /home/wololock/workspace/groovy-jmh/build/classes/groovy/jmh with "reflection" generator
Writing out Java source to /home/wololock/workspace/groovy-jmh/build/jmh-generated-sources and resources to /home/wololock/workspace/groovy-jmh/build/jmh-generated-resources
> Task :jmhCompileGeneratedClasses
> Task :jmhJar
# Warmup Iteration 1:
> Task :jmh
# JMH version: 1.21
# VM version: JDK 1.8.0_162, Java HotSpot(TM) 64-Bit Server VM, 25.162-b12
# VM invoker: /usr/java/jdk1.8.0_162/jre/bin/java
# VM options: <none>
# Warmup: 1 iterations, 30 s each
# Measurement: 120 iterations, 1 s each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: factorial.FactorialBench.groovy_TailRecursive_factorial_1_000
# Run progress: 0,00% complete, ETA 00:10:00
# Fork: 1 of 1
0,211 ms/op
Iteration 1: 0,209 ms/op
Iteration 2: 0,208 ms/op
Iteration 3: 0,208 ms/op
Iteration 4: 0,215 ms/op
Iteration 5: 0,209 ms/op
Iteration 6: 0,208 ms/op
Iteration 7: 0,208 ms/op
Iteration 8: 0,209 ms/op
Iteration 9: 0,211 ms/op
Iteration 10: 0,209 ms/op
Iteration 11: 0,207 ms/op
Iteration 12: 0,209 ms/op
Iteration 13: 0,209 ms/op
Iteration 14: 0,210 ms/op
Iteration 15: 0,210 ms/op
Iteration 16: 0,212 ms/op
Iteration 17: 0,206 ms/op
Iteration 18: 0,207 ms/op
Iteration 19: 0,207 ms/op
Iteration 20: 0,210 ms/op
Iteration 21: 0,209 ms/op
Iteration 22: 0,207 ms/op
Iteration 23: 0,209 ms/op
Iteration 24: 0,208 ms/op
Iteration 25: 0,211 ms/op
Iteration 26: 0,209 ms/op
Iteration 27: 0,210 ms/op
Iteration 28: 0,209 ms/op
Iteration 29: 0,206 ms/op
Iteration 30: 0,208 ms/op
Iteration 31: 0,207 ms/op
Iteration 32: 0,207 ms/op
Iteration 33: 0,209 ms/op
Iteration 34: 0,208 ms/op
Iteration 35: 0,209 ms/op
Iteration 36: 0,210 ms/op
Iteration 37: 0,207 ms/op
Iteration 38: 0,218 ms/op
Iteration 39: 0,207 ms/op
Iteration 40: 0,204 ms/op
Iteration 41: 0,205 ms/op
Iteration 42: 0,207 ms/op
Iteration 43: 0,210 ms/op
Iteration 44: 0,209 ms/op
Iteration 45: 0,209 ms/op
Iteration 46: 0,208 ms/op
Iteration 47: 0,207 ms/op
Iteration 48: 0,211 ms/op
Iteration 49: 0,207 ms/op
Iteration 50: 0,206 ms/op
Iteration 51: 0,208 ms/op
Iteration 52: 0,209 ms/op
Iteration 53: 0,208 ms/op
Iteration 54: 0,208 ms/op
Iteration 55: 0,206 ms/op
Iteration 56: 0,207 ms/op
Iteration 57: 0,208 ms/op
Iteration 58: 0,224 ms/op
Iteration 59: 0,210 ms/op
Iteration 60: 0,212 ms/op
Iteration 61: 0,208 ms/op
Iteration 62: 0,209 ms/op
Iteration 63: 0,209 ms/op
Iteration 64: 0,208 ms/op
Iteration 65: 0,207 ms/op
Iteration 66: 0,211 ms/op
Iteration 67: 0,222 ms/op
Iteration 68: 0,210 ms/op
Iteration 69: 0,207 ms/op
Iteration 70: 0,207 ms/op
Iteration 71: 0,209 ms/op
Iteration 72: 0,208 ms/op
Iteration 73: 0,208 ms/op
Iteration 74: 0,208 ms/op
Iteration 75: 0,209 ms/op
Iteration 76: 0,206 ms/op
Iteration 77: 0,208 ms/op
Iteration 78: 0,209 ms/op
Iteration 79: 0,210 ms/op
Iteration 80: 0,211 ms/op
Iteration 81: 0,205 ms/op
Iteration 82: 0,206 ms/op
Iteration 83: 0,206 ms/op
Iteration 84: 0,208 ms/op
Iteration 85: 0,209 ms/op
Iteration 86: 0,207 ms/op
Iteration 87: 0,210 ms/op
Iteration 88: 0,207 ms/op
Iteration 89: 0,208 ms/op
Iteration 90: 0,208 ms/op
Iteration 91: 0,210 ms/op
Iteration 92: 0,205 ms/op
Iteration 93: 0,207 ms/op
Iteration 94: 0,208 ms/op
Iteration 95: 0,208 ms/op
Iteration 96: 0,208 ms/op
Iteration 97: 0,208 ms/op
Iteration 98: 0,208 ms/op
Iteration 99: 0,208 ms/op
Iteration 100: 0,208 ms/op
Iteration 101: 0,211 ms/op
Iteration 102: 0,210 ms/op
Iteration 103: 0,207 ms/op
Iteration 104: 0,208 ms/op
Iteration 105: 0,209 ms/op
Iteration 106: 0,207 ms/op
Iteration 107: 0,209 ms/op
Iteration 108: 0,210 ms/op
Iteration 109: 0,207 ms/op
Iteration 110: 0,209 ms/op
Iteration 111: 0,204 ms/op
Iteration 112: 0,205 ms/op
Iteration 113: 0,208 ms/op
Iteration 114: 0,208 ms/op
Iteration 115: 0,209 ms/op
Iteration 116: 0,209 ms/op
Iteration 117: 0,210 ms/op
Iteration 118: 0,212 ms/op
Iteration 119: 0,208 ms/op
Iteration 120: 0,209 ms/op
> Task :jmh
Result "factorial.FactorialBench.groovy_TailRecursive_factorial_1_000":
0,209 ±(99.9%) 0,001 ms/op [Average]
(min, avg, max) = (0,204, 0,209, 0,224), stdev = 0,003
CI (99.9%): [0,208, 0,210] (assumes normal distribution)
# JMH version: 1.21
# VM version: JDK 1.8.0_162, Java HotSpot(TM) 64-Bit Server VM, 25.162-b12
# VM invoker: /usr/java/jdk1.8.0_162/jre/bin/java
# VM options: <none>
# Warmup: 1 iterations, 30 s each
# Measurement: 120 iterations, 1 s each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: factorial.FactorialBench.groovy_TailRecursive_factorial_25_000
# Run progress: 25,00% complete, ETA 00:07:31
# Fork: 1 of 1
# Warmup Iteration 1: 150,038 ms/op
Iteration 1: 147,163 ms/op
Iteration 2: 147,350 ms/op
Iteration 3: 148,246 ms/op
Iteration 4: 148,091 ms/op
Iteration 5: 147,090 ms/op
Iteration 6: 148,371 ms/op
Iteration 7: 147,953 ms/op
Iteration 8: 147,853 ms/op
Iteration 9: 148,529 ms/op
Iteration 10: 148,440 ms/op
Iteration 11: 148,107 ms/op
Iteration 12: 146,001 ms/op
Iteration 13: 147,445 ms/op
Iteration 14: 146,981 ms/op
Iteration 15: 146,005 ms/op
Iteration 16: 147,257 ms/op
Iteration 17: 147,652 ms/op
Iteration 18: 149,237 ms/op
Iteration 19: 147,374 ms/op
Iteration 20: 149,089 ms/op
Iteration 21: 147,731 ms/op
Iteration 22: 146,832 ms/op
Iteration 23: 147,211 ms/op
Iteration 24: 146,201 ms/op
Iteration 25: 147,357 ms/op
Iteration 26: 149,411 ms/op
Iteration 27: 151,727 ms/op
Iteration 28: 148,011 ms/op
Iteration 29: 148,791 ms/op
Iteration 30: 149,959 ms/op
Iteration 31: 152,246 ms/op
Iteration 32: 149,729 ms/op
Iteration 33: 147,630 ms/op
Iteration 34: 148,435 ms/op
Iteration 35: 147,124 ms/op
Iteration 36: 147,229 ms/op
Iteration 37: 147,531 ms/op
Iteration 38: 148,350 ms/op
Iteration 39: 148,990 ms/op
Iteration 40: 148,917 ms/op
Iteration 41: 149,114 ms/op
Iteration 42: 148,494 ms/op
Iteration 43: 149,166 ms/op
Iteration 44: 148,653 ms/op
Iteration 45: 149,429 ms/op
Iteration 46: 147,723 ms/op
Iteration 47: 149,258 ms/op
Iteration 48: 148,038 ms/op
Iteration 49: 147,666 ms/op
Iteration 50: 147,613 ms/op
Iteration 51: 149,762 ms/op
Iteration 52: 149,018 ms/op
Iteration 53: 148,666 ms/op
Iteration 54: 149,529 ms/op
Iteration 55: 147,460 ms/op
Iteration 56: 147,749 ms/op
Iteration 57: 148,200 ms/op
Iteration 58: 145,963 ms/op
Iteration 59: 147,579 ms/op
Iteration 60: 147,699 ms/op
Iteration 61: 149,247 ms/op
Iteration 62: 147,811 ms/op
Iteration 63: 148,568 ms/op
Iteration 64: 148,672 ms/op
Iteration 65: 148,258 ms/op
Iteration 66: 148,819 ms/op
Iteration 67: 149,413 ms/op
Iteration 68: 147,231 ms/op
Iteration 69: 147,839 ms/op
Iteration 70: 148,297 ms/op
Iteration 71: 148,880 ms/op
Iteration 72: 149,094 ms/op
Iteration 73: 147,796 ms/op
Iteration 74: 146,983 ms/op
Iteration 75: 148,060 ms/op
Iteration 76: 147,388 ms/op
Iteration 77: 147,167 ms/op
Iteration 78: 147,357 ms/op
Iteration 79: 148,512 ms/op
Iteration 80: 148,705 ms/op
Iteration 81: 149,787 ms/op
Iteration 82: 148,286 ms/op
Iteration 83: 147,760 ms/op
Iteration 84: 147,266 ms/op
Iteration 85: 147,574 ms/op
Iteration 86: 146,409 ms/op
Iteration 87: 147,840 ms/op
Iteration 88: 148,879 ms/op
Iteration 89: 149,510 ms/op
Iteration 90: 150,572 ms/op
Iteration 91: 148,860 ms/op
Iteration 92: 147,894 ms/op
Iteration 93: 149,260 ms/op
Iteration 94: 147,239 ms/op
Iteration 95: 148,268 ms/op
Iteration 96: 148,284 ms/op
Iteration 97: 148,849 ms/op
Iteration 98: 149,096 ms/op
Iteration 99: 147,096 ms/op
Iteration 100: 146,735 ms/op
Iteration 101: 147,272 ms/op
Iteration 102: 148,659 ms/op
Iteration 103: 148,486 ms/op
Iteration 104: 149,330 ms/op
Iteration 105: 146,495 ms/op
Iteration 106: 148,590 ms/op
Iteration 107: 146,984 ms/op
Iteration 108: 148,402 ms/op
Iteration 109: 149,565 ms/op
Iteration 110: 147,383 ms/op
Iteration 111: 146,818 ms/op
Iteration 112: 148,956 ms/op
Iteration 113: 148,844 ms/op
Iteration 114: 147,945 ms/op
Iteration 115: 147,033 ms/op
Iteration 116: 147,224 ms/op
Iteration 117: 149,871 ms/op
Iteration 118: 148,048 ms/op
Iteration 119: 146,758 ms/op
Iteration 120: 147,781 ms/op
> Task :jmh
Result "factorial.FactorialBench.groovy_TailRecursive_factorial_25_000":
148,170 ±(99.9%) 0,330 ms/op [Average]
(min, avg, max) = (145,963, 148,170, 152,246), stdev = 1,070
CI (99.9%): [147,841, 148,500] (assumes normal distribution)
# JMH version: 1.21
# VM version: JDK 1.8.0_162, Java HotSpot(TM) 64-Bit Server VM, 25.162-b12
# VM invoker: /usr/java/jdk1.8.0_162/jre/bin/java
# VM options: <none>
# Warmup: 1 iterations, 30 s each
# Measurement: 120 iterations, 1 s each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: factorial.FactorialBench.java_iterative_factorial_1_000
# Run progress: 50,00% complete, ETA 00:05:05
# Fork: 1 of 1
# Warmup Iteration 1: 0,176 ms/op
Iteration 1: 0,174 ms/op
Iteration 2: 0,174 ms/op
Iteration 3: 0,174 ms/op
Iteration 4: 0,172 ms/op
Iteration 5: 0,173 ms/op
Iteration 6: 0,172 ms/op
Iteration 7: 0,174 ms/op
Iteration 8: 0,174 ms/op
Iteration 9: 0,174 ms/op
Iteration 10: 0,172 ms/op
Iteration 11: 0,173 ms/op
Iteration 12: 0,174 ms/op
Iteration 13: 0,173 ms/op
Iteration 14: 0,172 ms/op
Iteration 15: 0,174 ms/op
Iteration 16: 0,174 ms/op
Iteration 17: 0,173 ms/op
Iteration 18: 0,175 ms/op
Iteration 19: 0,171 ms/op
Iteration 20: 0,173 ms/op
Iteration 21: 0,174 ms/op
Iteration 22: 0,172 ms/op
Iteration 23: 0,174 ms/op
Iteration 24: 0,173 ms/op
Iteration 25: 0,172 ms/op
Iteration 26: 0,172 ms/op
Iteration 27: 0,174 ms/op
Iteration 28: 0,176 ms/op
Iteration 29: 0,173 ms/op
Iteration 30: 0,171 ms/op
Iteration 31: 0,171 ms/op
Iteration 32: 0,174 ms/op
Iteration 33: 0,174 ms/op
Iteration 34: 0,174 ms/op
Iteration 35: 0,173 ms/op
Iteration 36: 0,173 ms/op
Iteration 37: 0,173 ms/op
Iteration 38: 0,171 ms/op
Iteration 39: 0,170 ms/op
Iteration 40: 0,171 ms/op
Iteration 41: 0,173 ms/op
Iteration 42: 0,174 ms/op
Iteration 43: 0,173 ms/op
Iteration 44: 0,173 ms/op
Iteration 45: 0,173 ms/op
Iteration 46: 0,174 ms/op
Iteration 47: 0,174 ms/op
Iteration 48: 0,173 ms/op
Iteration 49: 0,173 ms/op
Iteration 50: 0,174 ms/op
Iteration 51: 0,173 ms/op
Iteration 52: 0,175 ms/op
Iteration 53: 0,174 ms/op
Iteration 54: 0,173 ms/op
Iteration 55: 0,173 ms/op
Iteration 56: 0,175 ms/op
Iteration 57: 0,173 ms/op
Iteration 58: 0,173 ms/op
Iteration 59: 0,173 ms/op
Iteration 60: 0,174 ms/op
Iteration 61: 0,173 ms/op
Iteration 62: 0,174 ms/op
Iteration 63: 0,172 ms/op
Iteration 64: 0,174 ms/op
Iteration 65: 0,173 ms/op
Iteration 66: 0,178 ms/op
Iteration 67: 0,170 ms/op
Iteration 68: 0,171 ms/op
Iteration 69: 0,172 ms/op
Iteration 70: 0,172 ms/op
Iteration 71: 0,174 ms/op
Iteration 72: 0,173 ms/op
Iteration 73: 0,172 ms/op
Iteration 74: 0,174 ms/op
Iteration 75: 0,173 ms/op
Iteration 76: 0,172 ms/op
Iteration 77: 0,172 ms/op
Iteration 78: 0,174 ms/op
Iteration 79: 0,173 ms/op
Iteration 80: 0,174 ms/op
Iteration 81: 0,173 ms/op
Iteration 82: 0,172 ms/op
Iteration 83: 0,171 ms/op
Iteration 84: 0,172 ms/op
Iteration 85: 0,174 ms/op
Iteration 86: 0,174 ms/op
Iteration 87: 0,171 ms/op
Iteration 88: 0,174 ms/op
Iteration 89: 0,174 ms/op
Iteration 90: 0,174 ms/op
Iteration 91: 0,171 ms/op
Iteration 92: 0,175 ms/op
Iteration 93: 0,171 ms/op
Iteration 94: 0,172 ms/op
Iteration 95: 0,172 ms/op
Iteration 96: 0,173 ms/op
Iteration 97: 0,174 ms/op
Iteration 98: 0,173 ms/op
Iteration 99: 0,172 ms/op
Iteration 100: 0,172 ms/op
Iteration 101: 0,171 ms/op
Iteration 102: 0,174 ms/op
Iteration 103: 0,174 ms/op
Iteration 104: 0,173 ms/op
Iteration 105: 0,173 ms/op
Iteration 106: 0,173 ms/op
Iteration 107: 0,175 ms/op
Iteration 108: 0,175 ms/op
Iteration 109: 0,172 ms/op
Iteration 110: 0,171 ms/op
Iteration 111: 0,172 ms/op
Iteration 112: 0,172 ms/op
Iteration 113: 0,174 ms/op
Iteration 114: 0,172 ms/op
Iteration 115: 0,173 ms/op
Iteration 116: 0,173 ms/op
Iteration 117: 0,173 ms/op
Iteration 118: 0,174 ms/op
Iteration 119: 0,173 ms/op
Iteration 120: 0,177 ms/op
> Task :jmh
Result "factorial.FactorialBench.java_iterative_factorial_1_000":
0,173 ±(99.9%) 0,001 ms/op [Average]
(min, avg, max) = (0,170, 0,173, 0,178), stdev = 0,001
CI (99.9%): [0,173, 0,173] (assumes normal distribution)
# JMH version: 1.21
# VM version: JDK 1.8.0_162, Java HotSpot(TM) 64-Bit Server VM, 25.162-b12
# VM invoker: /usr/java/jdk1.8.0_162/jre/bin/java
# VM options: <none>
# Warmup: 1 iterations, 30 s each
# Measurement: 120 iterations, 1 s each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: factorial.FactorialBench.java_iterative_factorial_25_000
# Run progress: 75,00% complete, ETA 00:02:32
# Fork: 1 of 1
# Warmup Iteration 1: 131,345 ms/op
Iteration 1: 130,627 ms/op
Iteration 2: 130,433 ms/op
Iteration 3: 131,902 ms/op
Iteration 4: 130,715 ms/op
Iteration 5: 130,692 ms/op
Iteration 6: 129,992 ms/op
Iteration 7: 130,138 ms/op
Iteration 8: 131,093 ms/op
Iteration 9: 130,219 ms/op
Iteration 10: 130,309 ms/op
Iteration 11: 130,912 ms/op
Iteration 12: 130,485 ms/op
Iteration 13: 130,177 ms/op
Iteration 14: 130,989 ms/op
Iteration 15: 129,274 ms/op
Iteration 16: 129,394 ms/op
Iteration 17: 131,071 ms/op
Iteration 18: 130,889 ms/op
Iteration 19: 129,458 ms/op
Iteration 20: 129,717 ms/op
Iteration 21: 131,183 ms/op
Iteration 22: 130,003 ms/op
Iteration 23: 128,921 ms/op
Iteration 24: 131,225 ms/op
Iteration 25: 131,488 ms/op
Iteration 26: 130,032 ms/op
Iteration 27: 128,892 ms/op
Iteration 28: 128,986 ms/op
Iteration 29: 128,770 ms/op
Iteration 30: 128,703 ms/op
Iteration 31: 128,764 ms/op
Iteration 32: 128,632 ms/op
Iteration 33: 128,814 ms/op
Iteration 34: 128,962 ms/op
Iteration 35: 128,746 ms/op
Iteration 36: 128,663 ms/op
Iteration 37: 129,853 ms/op
Iteration 38: 128,153 ms/op
Iteration 39: 127,685 ms/op
Iteration 40: 127,900 ms/op
Iteration 41: 128,187 ms/op
Iteration 42: 127,737 ms/op
Iteration 43: 129,161 ms/op
Iteration 44: 130,174 ms/op
Iteration 45: 128,824 ms/op
Iteration 46: 129,674 ms/op
Iteration 47: 129,871 ms/op
Iteration 48: 129,030 ms/op
Iteration 49: 128,565 ms/op
Iteration 50: 129,321 ms/op
Iteration 51: 129,108 ms/op
Iteration 52: 129,597 ms/op
Iteration 53: 128,793 ms/op
Iteration 54: 129,302 ms/op
Iteration 55: 129,460 ms/op
Iteration 56: 128,867 ms/op
Iteration 57: 129,337 ms/op
Iteration 58: 129,126 ms/op
Iteration 59: 128,752 ms/op
Iteration 60: 128,628 ms/op
Iteration 61: 127,651 ms/op
Iteration 62: 129,752 ms/op
Iteration 63: 128,728 ms/op
Iteration 64: 129,214 ms/op
Iteration 65: 130,125 ms/op
Iteration 66: 130,008 ms/op
Iteration 67: 129,765 ms/op
Iteration 68: 128,447 ms/op
Iteration 69: 128,471 ms/op
Iteration 70: 127,987 ms/op
Iteration 71: 128,783 ms/op
Iteration 72: 130,879 ms/op
Iteration 73: 130,522 ms/op
Iteration 74: 130,813 ms/op
Iteration 75: 130,752 ms/op
Iteration 76: 130,428 ms/op
Iteration 77: 131,329 ms/op
Iteration 78: 129,699 ms/op
Iteration 79: 130,339 ms/op
Iteration 80: 131,540 ms/op
Iteration 81: 130,586 ms/op
Iteration 82: 131,105 ms/op
Iteration 83: 131,637 ms/op
Iteration 84: 130,673 ms/op
Iteration 85: 130,425 ms/op
Iteration 86: 130,630 ms/op
Iteration 87: 131,104 ms/op
Iteration 88: 130,684 ms/op
Iteration 89: 129,075 ms/op
Iteration 90: 130,476 ms/op
Iteration 91: 131,632 ms/op
Iteration 92: 130,544 ms/op
Iteration 93: 129,083 ms/op
Iteration 94: 129,707 ms/op
Iteration 95: 131,618 ms/op
Iteration 96: 130,996 ms/op
Iteration 97: 130,614 ms/op
Iteration 98: 130,705 ms/op
Iteration 99: 131,448 ms/op
Iteration 100: 129,958 ms/op
Iteration 101: 129,163 ms/op
Iteration 102: 130,548 ms/op
Iteration 103: 130,550 ms/op
Iteration 104: 130,240 ms/op
Iteration 105: 130,174 ms/op
Iteration 106: 130,560 ms/op
Iteration 107: 130,511 ms/op
Iteration 108: 129,740 ms/op
Iteration 109: 130,490 ms/op
Iteration 110: 132,014 ms/op
Iteration 111: 130,778 ms/op
Iteration 112: 130,927 ms/op
Iteration 113: 131,069 ms/op
Iteration 114: 129,905 ms/op
Iteration 115: 131,190 ms/op
Iteration 116: 129,929 ms/op
Iteration 117: 130,036 ms/op
Iteration 118: 130,483 ms/op
Iteration 119: 131,897 ms/op
Iteration 120: 131,572 ms/op
> Task :jmh
Result "factorial.FactorialBench.java_iterative_factorial_25_000":
129,951 ±(99.9%) 0,321 ms/op [Average]
(min, avg, max) = (127,651, 129,951, 132,014), stdev = 1,042
CI (99.9%): [129,630, 130,272] (assumes normal distribution)
# Run complete. Total time: 00:10:11
REMEMBER: The numbers below are just data. To gain reusable insights, you need to follow up on
why the numbers are the way they are. Use profilers (see -prof, -lprof), design factorial
experiments, perform baseline and negative tests that provide experimental control, make sure
the benchmarking environment is safe on JVM/OS/HW level, ask for reviews from the domain experts.
Do not assume the numbers tell you what you want them to tell.
Benchmark Mode Cnt Score Error Units
FactorialBench.groovy_TailRecursive_factorial_1_000 avgt 120 0,209 ± 0,001 ms/op
FactorialBench.groovy_TailRecursive_factorial_25_000 avgt 120 148,170 ± 0,330 ms/op
FactorialBench.java_iterative_factorial_1_000 avgt 120 0,173 ± 0,001 ms/op
FactorialBench.java_iterative_factorial_25_000 avgt 120 129,951 ± 0,321 ms/op
Benchmark result is saved to /home/wololock/workspace/groovy-jmh/build/reports/jmh/results.txt
BUILD SUCCESSFUL in 10m 18s
8 actionable tasks: 8 executed
10:44:54: Tasks execution finished 'clean jmh'.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment