================================================================================================ aggregate without grouping ================================================================================================ OpenJDK 64-Bit Server VM 1.8.0_292-b10 on Linux 5.4.0-1046-azure Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz agg w/o group: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ agg w/o group wholestage off 53440 63455 NaN 39.2 25.5 1.0X agg w/o group wholestage on 1157 1216 39 1812.5 0.6 46.2X ================================================================================================ stat functions ================================================================================================ OpenJDK 64-Bit Server VM 1.8.0_292-b10 on Linux 5.4.0-1046-azure Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz stddev: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ stddev wholestage off 7920 7947 39 13.2 75.5 1.0X stddev wholestage on 1147 1160 11 91.4 10.9 6.9X OpenJDK 64-Bit Server VM 1.8.0_292-b10 on Linux 5.4.0-1046-azure Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz kurtosis: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ kurtosis wholestage off 35143 35319 250 3.0 335.1 1.0X kurtosis wholestage on 1239 1258 20 84.6 11.8 28.4X ================================================================================================ aggregate with linear keys ================================================================================================ OpenJDK 64-Bit Server VM 1.8.0_292-b10 on Linux 5.4.0-1046-azure Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz Aggregate w keys: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ codegen = F 9147 9183 50 9.2 109.0 1.0X codegen = T, hashmap = F 5794 5949 226 14.5 69.1 1.6X codegen = T, row-based hashmap = T 1378 1397 14 60.9 16.4 6.6X codegen = T, vectorized hashmap = T 996 1034 25 84.3 11.9 9.2X ================================================================================================ aggregate with randomized keys ================================================================================================ OpenJDK 64-Bit Server VM 1.8.0_292-b10 on Linux 5.4.0-1046-azure Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz Aggregate w keys: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ codegen = F 9356 9425 98 9.0 111.5 1.0X codegen = T, hashmap = F 5787 5912 176 14.5 69.0 1.6X codegen = T, row-based hashmap = T 2569 2602 49 32.7 30.6 3.6X codegen = T, vectorized hashmap = T 2094 2128 27 40.1 25.0 4.5X ================================================================================================ aggregate with string key ================================================================================================ OpenJDK 64-Bit Server VM 1.8.0_292-b10 on Linux 5.4.0-1046-azure Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz Aggregate w string key: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ codegen = F 4270 4322 75 4.9 203.6 1.0X codegen = T, hashmap = F 3241 3264 30 6.5 154.6 1.3X codegen = T, row-based hashmap = T 2196 2247 32 9.6 104.7 1.9X codegen = T, vectorized hashmap = T 2291 2306 14 9.2 109.3 1.9X ================================================================================================ aggregate with decimal key ================================================================================================ OpenJDK 64-Bit Server VM 1.8.0_292-b10 on Linux 5.4.0-1046-azure Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz Aggregate w decimal key: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ codegen = F 2993 3010 23 7.0 142.7 1.0X codegen = T, hashmap = F 1940 1945 7 10.8 92.5 1.5X codegen = T, row-based hashmap = T 738 752 20 28.4 35.2 4.1X codegen = T, vectorized hashmap = T 620 650 21 33.8 29.6 4.8X ================================================================================================ aggregate with multiple key types ================================================================================================ OpenJDK 64-Bit Server VM 1.8.0_292-b10 on Linux 5.4.0-1046-azure Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz Aggregate w multiple keys: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ codegen = F 6635 6636 2 3.2 316.4 1.0X codegen = T, hashmap = F 4236 4269 47 5.0 202.0 1.6X codegen = T, row-based hashmap = T 3118 3158 57 6.7 148.7 2.1X codegen = T, vectorized hashmap = T 3259 3278 27 6.4 155.4 2.0X ================================================================================================ max function bytecode size of wholestagecodegen ================================================================================================ OpenJDK 64-Bit Server VM 1.8.0_292-b10 on Linux 5.4.0-1046-azure Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz max function bytecode size: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ codegen = F 467 492 33 1.4 712.4 1.0X codegen = T, hugeMethodLimit = 10000 216 231 19 3.0 329.7 2.2X codegen = T, hugeMethodLimit = 1500 209 221 9 3.1 319.0 2.2X ================================================================================================ cube ================================================================================================ OpenJDK 64-Bit Server VM 1.8.0_292-b10 on Linux 5.4.0-1046-azure Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz cube: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ cube wholestage off 2490 2529 56 2.1 474.8 1.0X cube wholestage on 1401 1416 22 3.7 267.3 1.8X ================================================================================================ hash and BytesToBytesMap ================================================================================================ OpenJDK 64-Bit Server VM 1.8.0_292-b10 on Linux 5.4.0-1046-azure Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz BytesToBytesMap: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ UnsafeRowhash 259 264 5 81.0 12.3 1.0X murmur3 hash 113 121 3 185.7 5.4 2.3X fast hash 84 87 2 249.8 4.0 3.1X arrayEqual 172 180 4 121.9 8.2 1.5X Java HashMap (Long) 155 161 5 135.2 7.4 1.7X Java HashMap (two ints) 147 157 8 142.6 7.0 1.8X Java HashMap (UnsafeRow) 739 742 4 28.4 35.2 0.4X LongToUnsafeRowMap (opt=false) 489 491 3 42.9 23.3 0.5X LongToUnsafeRowMap (opt=true) 93 100 6 224.8 4.4 2.8X BytesToBytesMap (off Heap) 882 896 16 23.8 42.1 0.3X BytesToBytesMap (on Heap) 833 863 36 25.2 39.7 0.3X Aggregate HashMap 66 69 1 317.0 3.2 3.9X