### Tests run on recent JDK8, Linux, i7 CPU (4 cores, 8 threads) ### Original code: #------------------------------------------------------------- # Annotation_annotationType: run duration: 2,000 ms # # Warm up: # 1 threads, Tavg = 11.83 ns/op (σ = 0.00 ns/op) [ 11.83] # 1 threads, Tavg = 11.36 ns/op (σ = 0.00 ns/op) [ 11.36] # Measure: 1 threads, Tavg = 10.16 ns/op (σ = 0.00 ns/op) [ 10.16] 2 threads, Tavg = 10.24 ns/op (σ = 0.01 ns/op) [ 10.23, 10.25] 3 threads, Tavg = 10.23 ns/op (σ = 0.07 ns/op) [ 10.27, 10.28, 10.13] 4 threads, Tavg = 10.35 ns/op (σ = 0.07 ns/op) [ 10.42, 10.40, 10.23, 10.36] 5 threads, Tavg = 12.87 ns/op (σ = 1.04 ns/op) [ 13.49, 13.15, 11.13, 12.77, 14.26] 6 threads, Tavg = 15.04 ns/op (σ = 1.38 ns/op) [ 17.45, 14.46, 13.90, 14.69, 16.61, 13.86] 7 threads, Tavg = 17.69 ns/op (σ = 1.21 ns/op) [ 19.61, 18.80, 17.32, 16.11, 16.71, 18.82, 17.00] 8 threads, Tavg = 20.29 ns/op (σ = 0.13 ns/op) [ 20.15, 20.44, 20.40, 20.52, 20.15, 20.22, 20.22, 20.22] # #------------------------------------------------------------- # Annotation_value: run duration: 2,000 ms # # Warm up: # 1 threads, Tavg = 23.81 ns/op (σ = 0.00 ns/op) [ 23.81] # 1 threads, Tavg = 23.74 ns/op (σ = 0.00 ns/op) [ 23.74] # Measure: 1 threads, Tavg = 23.80 ns/op (σ = 0.00 ns/op) [ 23.80] 2 threads, Tavg = 23.70 ns/op (σ = 0.00 ns/op) [ 23.71, 23.70] 3 threads, Tavg = 23.42 ns/op (σ = 0.06 ns/op) [ 23.47, 23.34, 23.44] 4 threads, Tavg = 23.50 ns/op (σ = 0.06 ns/op) [ 23.48, 23.52, 23.58, 23.42] 5 threads, Tavg = 29.03 ns/op (σ = 2.19 ns/op) [ 27.37, 29.85, 27.30, 33.14, 28.26] 6 threads, Tavg = 33.97 ns/op (σ = 3.10 ns/op) [ 31.85, 32.13, 37.99, 39.11, 32.73, 31.57] 7 threads, Tavg = 39.36 ns/op (σ = 1.97 ns/op) [ 36.78, 40.44, 39.50, 43.46, 39.50, 38.21, 38.28] 8 threads, Tavg = 44.69 ns/op (σ = 0.50 ns/op) [ 44.73, 43.86, 45.81, 44.60, 44.67, 44.59, 44.85, 44.47] # #------------------------------------------------------------- # Annotation_equals_oneOfUs: run duration: 2,000 ms # # Warm up: # 1 threads, Tavg = 126.28 ns/op (σ = 0.00 ns/op) [ 126.28] # 1 threads, Tavg = 124.44 ns/op (σ = 0.00 ns/op) [ 124.44] # Measure: 1 threads, Tavg = 123.46 ns/op (σ = 0.00 ns/op) [ 123.46] 2 threads, Tavg = 123.87 ns/op (σ = 0.12 ns/op) [ 123.99, 123.75] 3 threads, Tavg = 124.74 ns/op (σ = 1.37 ns/op) [ 124.01, 126.67, 123.58] 4 threads, Tavg = 125.01 ns/op (σ = 0.30 ns/op) [ 125.44, 124.76, 124.70, 125.15] 5 threads, Tavg = 151.86 ns/op (σ = 14.15 ns/op) [ 157.67, 130.02, 165.99, 167.49, 145.01] 6 threads, Tavg = 177.80 ns/op (σ = 17.58 ns/op) [ 198.38, 173.65, 192.10, 147.63, 194.06, 172.01] 7 threads, Tavg = 205.06 ns/op (σ = 7.83 ns/op) [ 192.57, 202.20, 201.78, 220.36, 204.76, 209.26, 206.55] 8 threads, Tavg = 231.03 ns/op (σ = 2.08 ns/op) [ 233.39, 231.22, 233.04, 231.30, 230.51, 232.38, 230.27, 226.31] # #------------------------------------------------------------- # Annotation_equals_notOneOfUs: run duration: 2,000 ms # # Warm up: # 1 threads, Tavg = 114.44 ns/op (σ = 0.00 ns/op) [ 114.44] # 1 threads, Tavg = 112.79 ns/op (σ = 0.00 ns/op) [ 112.79] # Measure: 1 threads, Tavg = 112.91 ns/op (σ = 0.00 ns/op) [ 112.91] 2 threads, Tavg = 113.10 ns/op (σ = 0.10 ns/op) [ 112.99, 113.20] 3 threads, Tavg = 111.77 ns/op (σ = 0.17 ns/op) [ 112.00, 111.74, 111.59] 4 threads, Tavg = 112.05 ns/op (σ = 0.06 ns/op) [ 112.15, 111.99, 112.04, 112.01] 5 threads, Tavg = 128.75 ns/op (σ = 8.28 ns/op) [ 120.40, 142.70, 124.28, 134.81, 124.13] 6 threads, Tavg = 143.82 ns/op (σ = 7.85 ns/op) [ 135.07, 154.25, 137.30, 152.51, 148.90, 137.44] 7 threads, Tavg = 157.13 ns/op (σ = 4.70 ns/op) [ 150.84, 156.48, 159.59, 161.51, 159.94, 162.60, 149.96] 8 threads, Tavg = 172.40 ns/op (σ = 1.36 ns/op) [ 171.72, 171.69, 174.41, 171.18, 171.39, 173.57, 174.37, 170.97] # #------------------------------------------------------------- # Class_getDeclaredAnnotationsByType_direct: run duration: 2,000 ms # # Warm up: # 1 threads, Tavg = 63.69 ns/op (σ = 0.00 ns/op) [ 63.69] # 1 threads, Tavg = 62.07 ns/op (σ = 0.00 ns/op) [ 62.07] # Measure: 1 threads, Tavg = 62.48 ns/op (σ = 0.00 ns/op) [ 62.48] 2 threads, Tavg = 62.90 ns/op (σ = 0.06 ns/op) [ 62.95, 62.84] 3 threads, Tavg = 71.00 ns/op (σ = 0.74 ns/op) [ 72.05, 70.53, 70.43] 4 threads, Tavg = 69.38 ns/op (σ = 0.23 ns/op) [ 69.21, 69.77, 69.28, 69.27] 5 threads, Tavg = 83.65 ns/op (σ = 12.31 ns/op) [ 76.33, 79.10, 98.05, 71.42, 101.73] 6 threads, Tavg = 99.28 ns/op (σ = 5.76 ns/op) [ 96.45, 99.12, 102.45, 110.73, 93.37, 95.44] 7 threads, Tavg = 113.66 ns/op (σ = 5.56 ns/op) [ 111.61, 110.39, 123.26, 111.72, 106.97, 112.16, 121.33] 8 threads, Tavg = 129.38 ns/op (σ = 1.32 ns/op) [ 130.56, 127.54, 129.06, 127.90, 128.82, 130.75, 129.03, 131.50] # #------------------------------------------------------------- # Class_getDeclaredAnnotationsByType_indirect: run duration: 2,000 ms # # Warm up: # 1 threads, Tavg = 172.31 ns/op (σ = 0.00 ns/op) [ 172.31] # 1 threads, Tavg = 170.91 ns/op (σ = 0.00 ns/op) [ 170.91] # Measure: 1 threads, Tavg = 169.53 ns/op (σ = 0.00 ns/op) [ 169.53] 2 threads, Tavg = 184.34 ns/op (σ = 0.78 ns/op) [ 183.57, 185.12] 3 threads, Tavg = 185.59 ns/op (σ = 0.88 ns/op) [ 186.74, 185.45, 184.60] 4 threads, Tavg = 189.04 ns/op (σ = 1.13 ns/op) [ 188.80, 189.88, 187.32, 190.21] 5 threads, Tavg = 229.44 ns/op (σ = 16.70 ns/op) [ 247.43, 233.09, 212.09, 249.74, 210.90] 6 threads, Tavg = 269.58 ns/op (σ = 21.65 ns/op) [ 229.87, 295.22, 266.35, 272.55, 271.43, 293.12] 7 threads, Tavg = 309.76 ns/op (σ = 15.17 ns/op) [ 327.39, 292.98, 306.17, 329.40, 321.30, 287.73, 308.61] 8 threads, Tavg = 355.14 ns/op (σ = 3.17 ns/op) [ 358.17, 352.90, 354.73, 353.38, 357.36, 359.01, 356.97, 348.85] # #------------------------------------------------------------- # Class_getDeclaredAnnotationsByType_direct_indirect: run duration: 2,000 ms # # Warm up: # 1 threads, Tavg = 180.71 ns/op (σ = 0.00 ns/op) [ 180.71] # 1 threads, Tavg = 179.74 ns/op (σ = 0.00 ns/op) [ 179.74] # Measure: 1 threads, Tavg = 175.80 ns/op (σ = 0.00 ns/op) [ 175.80] 2 threads, Tavg = 192.50 ns/op (σ = 0.92 ns/op) [ 191.58, 193.42] 3 threads, Tavg = 192.71 ns/op (σ = 0.25 ns/op) [ 192.88, 192.88, 192.35] 4 threads, Tavg = 196.59 ns/op (σ = 0.57 ns/op) [ 197.15, 195.66, 196.65, 196.92] 5 threads, Tavg = 239.19 ns/op (σ = 27.47 ns/op) [ 194.96, 269.13, 239.07, 240.10, 269.49] 6 threads, Tavg = 282.33 ns/op (σ = 23.13 ns/op) [ 249.11, 297.33, 268.04, 271.00, 313.42, 306.47] 7 threads, Tavg = 326.18 ns/op (σ = 18.72 ns/op) [ 337.00, 322.57, 299.66, 328.95, 353.77, 303.89, 344.98] 8 threads, Tavg = 367.48 ns/op (σ = 2.15 ns/op) [ 368.80, 370.51, 363.99, 368.19, 369.06, 364.45, 368.36, 366.60] # ### Patched code: #------------------------------------------------------------- # Annotation_annotationType: run duration: 2,000 ms # # Warm up: # 1 threads, Tavg = 1.65 ns/op (σ = 0.00 ns/op) [ 1.65] # 1 threads, Tavg = 1.65 ns/op (σ = 0.00 ns/op) [ 1.65] # Measure: 1 threads, Tavg = 1.64 ns/op (σ = 0.00 ns/op) [ 1.64] 2 threads, Tavg = 1.63 ns/op (σ = 0.00 ns/op) [ 1.64, 1.63] 3 threads, Tavg = 1.63 ns/op (σ = 0.00 ns/op) [ 1.63, 1.63, 1.63] 4 threads, Tavg = 1.60 ns/op (σ = 0.09 ns/op) [ 1.71, 1.50, 1.69, 1.53] 5 threads, Tavg = 1.96 ns/op (σ = 0.58 ns/op) [ 1.64, 1.63, 2.80, 1.64, 2.80] 6 threads, Tavg = 2.26 ns/op (σ = 0.49 ns/op) [ 2.66, 1.63, 2.81, 2.52, 1.79, 2.80] 7 threads, Tavg = 2.57 ns/op (σ = 0.33 ns/op) [ 2.61, 2.80, 3.02, 2.79, 2.24, 2.80, 2.02] 8 threads, Tavg = 2.80 ns/op (σ = 0.02 ns/op) [ 2.80, 2.79, 2.78, 2.81, 2.83, 2.82, 2.80, 2.79] # #------------------------------------------------------------- # Annotation_value: run duration: 2,000 ms # # Warm up: # 1 threads, Tavg = 10.25 ns/op (σ = 0.00 ns/op) [ 10.25] # 1 threads, Tavg = 10.19 ns/op (σ = 0.00 ns/op) [ 10.19] # Measure: 1 threads, Tavg = 9.71 ns/op (σ = 0.00 ns/op) [ 9.71] 2 threads, Tavg = 9.83 ns/op (σ = 0.01 ns/op) [ 9.82, 9.84] 3 threads, Tavg = 9.73 ns/op (σ = 0.02 ns/op) [ 9.76, 9.72, 9.71] 4 threads, Tavg = 9.76 ns/op (σ = 0.02 ns/op) [ 9.77, 9.78, 9.76, 9.72] 5 threads, Tavg = 12.05 ns/op (σ = 4.53 ns/op) [ 9.71, 9.81, 9.74, 18.65, 18.63] 6 threads, Tavg = 14.31 ns/op (σ = 3.66 ns/op) [ 12.88, 11.76, 18.65, 18.71, 10.45, 18.63] 7 threads, Tavg = 16.55 ns/op (σ = 2.73 ns/op) [ 18.72, 18.63, 17.29, 18.70, 17.06, 10.81, 18.72] 8 threads, Tavg = 18.70 ns/op (σ = 0.16 ns/op) [ 19.10, 18.67, 18.64, 18.60, 18.62, 18.67, 18.66, 18.63] # #------------------------------------------------------------- # Annotation_equals_oneOfUs: run duration: 2,000 ms # # Warm up: # 1 threads, Tavg = 54.79 ns/op (σ = 0.00 ns/op) [ 54.79] # 1 threads, Tavg = 54.46 ns/op (σ = 0.00 ns/op) [ 54.46] # Measure: 1 threads, Tavg = 53.55 ns/op (σ = 0.00 ns/op) [ 53.55] 2 threads, Tavg = 53.19 ns/op (σ = 0.03 ns/op) [ 53.21, 53.16] 3 threads, Tavg = 53.51 ns/op (σ = 0.02 ns/op) [ 53.52, 53.47, 53.53] 4 threads, Tavg = 53.48 ns/op (σ = 0.27 ns/op) [ 53.68, 53.13, 53.31, 53.80] 5 threads, Tavg = 64.64 ns/op (σ = 6.46 ns/op) [ 64.01, 65.89, 58.51, 77.02, 60.67] 6 threads, Tavg = 74.63 ns/op (σ = 4.13 ns/op) [ 77.95, 81.97, 73.20, 69.90, 71.05, 75.03] 7 threads, Tavg = 85.50 ns/op (σ = 4.23 ns/op) [ 82.69, 90.05, 81.73, 86.49, 86.56, 92.53, 79.91] 8 threads, Tavg = 95.05 ns/op (σ = 0.69 ns/op) [ 95.53, 94.91, 95.81, 94.11, 95.84, 95.55, 94.04, 94.65] # #------------------------------------------------------------- # Annotation_equals_notOneOfUs: run duration: 2,000 ms # # Warm up: # 1 threads, Tavg = 70.00 ns/op (σ = 0.00 ns/op) [ 70.00] # 1 threads, Tavg = 65.63 ns/op (σ = 0.00 ns/op) [ 65.63] # Measure: 1 threads, Tavg = 89.25 ns/op (σ = 0.00 ns/op) [ 89.25] 2 threads, Tavg = 87.73 ns/op (σ = 0.37 ns/op) [ 88.10, 87.37] 3 threads, Tavg = 87.60 ns/op (σ = 0.29 ns/op) [ 87.78, 87.19, 87.82] 4 threads, Tavg = 88.30 ns/op (σ = 0.19 ns/op) [ 88.53, 87.99, 88.35, 88.34] 5 threads, Tavg = 103.92 ns/op (σ = 6.75 ns/op) [ 111.07, 93.82, 105.10, 100.22, 111.64] 6 threads, Tavg = 118.00 ns/op (σ = 8.38 ns/op) [ 112.19, 124.88, 105.46, 116.23, 130.82, 122.00] 7 threads, Tavg = 129.83 ns/op (σ = 5.18 ns/op) [ 137.53, 136.19, 127.19, 124.98, 124.45, 133.76, 126.17] 8 threads, Tavg = 142.50 ns/op (σ = 1.00 ns/op) [ 142.41, 142.59, 140.81, 144.14, 141.42, 143.45, 143.01, 142.19] # #------------------------------------------------------------- # Class_getDeclaredAnnotationsByType_direct: run duration: 2,000 ms # # Warm up: # 1 threads, Tavg = 33.47 ns/op (σ = 0.00 ns/op) [ 33.47] # 1 threads, Tavg = 33.24 ns/op (σ = 0.00 ns/op) [ 33.24] # Measure: 1 threads, Tavg = 33.49 ns/op (σ = 0.00 ns/op) [ 33.49] 2 threads, Tavg = 33.68 ns/op (σ = 0.07 ns/op) [ 33.61, 33.76] 3 threads, Tavg = 33.67 ns/op (σ = 0.20 ns/op) [ 33.68, 33.91, 33.41] 4 threads, Tavg = 41.97 ns/op (σ = 0.31 ns/op) [ 41.72, 42.14, 41.62, 42.39] 5 threads, Tavg = 43.40 ns/op (σ = 5.56 ns/op) [ 39.04, 42.21, 38.97, 53.73, 46.22] 6 threads, Tavg = 57.32 ns/op (σ = 4.51 ns/op) [ 61.50, 59.10, 59.82, 56.79, 60.84, 48.23] 7 threads, Tavg = 59.21 ns/op (σ = 2.95 ns/op) [ 59.26, 52.88, 59.38, 62.58, 61.90, 58.87, 60.68] 8 threads, Tavg = 65.19 ns/op (σ = 0.73 ns/op) [ 65.40, 65.63, 64.14, 65.63, 65.72, 64.14, 66.23, 64.68] # #------------------------------------------------------------- # Class_getDeclaredAnnotationsByType_indirect: run duration: 2,000 ms # # Warm up: # 1 threads, Tavg = 79.43 ns/op (σ = 0.00 ns/op) [ 79.43] # 1 threads, Tavg = 79.53 ns/op (σ = 0.00 ns/op) [ 79.53] # Measure: 1 threads, Tavg = 76.98 ns/op (σ = 0.00 ns/op) [ 76.98] 2 threads, Tavg = 76.85 ns/op (σ = 0.05 ns/op) [ 76.80, 76.90] 3 threads, Tavg = 77.94 ns/op (σ = 0.27 ns/op) [ 77.98, 78.26, 77.60] 4 threads, Tavg = 76.94 ns/op (σ = 0.16 ns/op) [ 76.71, 77.17, 76.98, 76.91] 5 threads, Tavg = 94.82 ns/op (σ = 9.34 ns/op) [ 102.05, 109.93, 86.25, 94.49, 85.79] 6 threads, Tavg = 113.21 ns/op (σ = 15.49 ns/op) [ 104.36, 98.44, 115.02, 132.63, 102.00, 138.47] 7 threads, Tavg = 129.27 ns/op (σ = 12.61 ns/op) [ 136.80, 117.36, 141.42, 139.80, 142.56, 128.68, 107.39] 8 threads, Tavg = 149.86 ns/op (σ = 1.21 ns/op) [ 150.22, 150.30, 147.84, 148.84, 151.33, 149.84, 148.94, 151.67] # #------------------------------------------------------------- # Class_getDeclaredAnnotationsByType_direct_indirect: run duration: 2,000 ms # # Warm up: # 1 threads, Tavg = 105.38 ns/op (σ = 0.00 ns/op) [ 105.38] # 1 threads, Tavg = 103.09 ns/op (σ = 0.00 ns/op) [ 103.09] # Measure: 1 threads, Tavg = 103.59 ns/op (σ = 0.00 ns/op) [ 103.59] 2 threads, Tavg = 104.51 ns/op (σ = 0.05 ns/op) [ 104.46, 104.56] 3 threads, Tavg = 105.81 ns/op (σ = 3.61 ns/op) [ 111.03, 103.36, 103.41] 4 threads, Tavg = 104.36 ns/op (σ = 0.21 ns/op) [ 104.15, 104.18, 104.49, 104.64] 5 threads, Tavg = 131.64 ns/op (σ = 8.37 ns/op) [ 130.48, 136.19, 117.06, 141.61, 135.62] 6 threads, Tavg = 153.12 ns/op (σ = 19.24 ns/op) [ 177.31, 139.30, 154.97, 175.19, 163.09, 123.87] 7 threads, Tavg = 178.44 ns/op (σ = 15.27 ns/op) [ 196.88, 165.64, 164.90, 157.50, 187.53, 194.03, 191.87] 8 threads, Tavg = 206.83 ns/op (σ = 2.33 ns/op) [ 204.62, 209.65, 208.45, 203.91, 206.17, 205.05, 210.77, 206.20] #