================================================================================================ aggregate without grouping ================================================================================================ OpenJDK 64-Bit Server VM 1.8.0_222-b10 on Linux 3.10.0-862.3.2.el7.x86_64 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 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 50499 52524 2863 41.5 24.1 1.0X agg w/o group wholestage on 1163 1205 56 1803.1 0.6 43.4X ================================================================================================ stat functions ================================================================================================ OpenJDK 64-Bit Server VM 1.8.0_222-b10 on Linux 3.10.0-862.3.2.el7.x86_64 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz stddev: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ stddev wholestage off 13393 13403 14 7.8 127.7 1.0X stddev wholestage on 1291 1315 25 81.2 12.3 10.4X OpenJDK 64-Bit Server VM 1.8.0_222-b10 on Linux 3.10.0-862.3.2.el7.x86_64 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz kurtosis: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ kurtosis wholestage off 40131 40250 168 2.6 382.7 1.0X kurtosis wholestage on 1435 1452 20 73.1 13.7 28.0X ================================================================================================ aggregate with linear keys ================================================================================================ OpenJDK 64-Bit Server VM 1.8.0_222-b10 on Linux 3.10.0-862.3.2.el7.x86_64 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz Aggregate w keys: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ codegen = F 10008 10008 1 8.4 119.3 1.0X codegen = T hashmap = F 5803 6158 370 14.5 69.2 1.7X codegen = T hashmap = T 1332 1348 12 63.0 15.9 7.5X ================================================================================================ aggregate with randomized keys ================================================================================================ OpenJDK 64-Bit Server VM 1.8.0_222-b10 on Linux 3.10.0-862.3.2.el7.x86_64 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz Aggregate w keys: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ codegen = F 11853 11988 191 7.1 141.3 1.0X codegen = T hashmap = F 7469 7531 57 11.2 89.0 1.6X codegen = T hashmap = T 2412 2436 24 34.8 28.8 4.9X ================================================================================================ aggregate with string key ================================================================================================ OpenJDK 64-Bit Server VM 1.8.0_222-b10 on Linux 3.10.0-862.3.2.el7.x86_64 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz Aggregate w string key: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ codegen = F 4880 4908 40 4.3 232.7 1.0X codegen = T hashmap = F 3483 3505 26 6.0 166.1 1.4X codegen = T hashmap = T 2362 2425 39 8.9 112.6 2.1X ================================================================================================ aggregate with decimal key ================================================================================================ OpenJDK 64-Bit Server VM 1.8.0_222-b10 on Linux 3.10.0-862.3.2.el7.x86_64 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz Aggregate w decimal key: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ codegen = F 3475 3516 58 6.0 165.7 1.0X codegen = T hashmap = F 1939 1958 27 10.8 92.5 1.8X codegen = T hashmap = T 599 609 9 35.0 28.6 5.8X ================================================================================================ aggregate with multiple key types ================================================================================================ OpenJDK 64-Bit Server VM 1.8.0_222-b10 on Linux 3.10.0-862.3.2.el7.x86_64 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz Aggregate w multiple keys: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ codegen = F 7649 7675 37 2.7 364.7 1.0X codegen = T hashmap = F 4729 4759 42 4.4 225.5 1.6X codegen = T hashmap = T 3917 3929 16 5.4 186.8 2.0X ================================================================================================ max function bytecode size of wholestagecodegen ================================================================================================ OpenJDK 64-Bit Server VM 1.8.0_222-b10 on Linux 3.10.0-862.3.2.el7.x86_64 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz max function bytecode size: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ codegen = F 628 661 25 1.0 958.2 1.0X codegen = T hugeMethodLimit = 10000 366 385 21 1.8 558.9 1.7X codegen = T hugeMethodLimit = 1500 620 648 24 1.1 946.7 1.0X ================================================================================================ cube ================================================================================================ OpenJDK 64-Bit Server VM 1.8.0_222-b10 on Linux 3.10.0-862.3.2.el7.x86_64 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz cube: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ cube wholestage off 3225 3273 68 1.6 615.1 1.0X cube wholestage on 1636 1680 56 3.2 312.0 2.0X ================================================================================================ hash and BytesToBytesMap ================================================================================================ OpenJDK 64-Bit Server VM 1.8.0_222-b10 on Linux 3.10.0-862.3.2.el7.x86_64 Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz BytesToBytesMap: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------------------------------ UnsafeRowhash 331 332 0 63.3 15.8 1.0X murmur3 hash 148 148 0 141.4 7.1 2.2X fast hash 75 76 6 280.6 3.6 4.4X arrayEqual 176 176 0 119.0 8.4 1.9X Java HashMap (Long) 140 144 6 149.7 6.7 2.4X Java HashMap (two ints) 153 157 5 137.2 7.3 2.2X Java HashMap (UnsafeRow) 845 852 6 24.8 40.3 0.4X LongToUnsafeRowMap (opt=false) 463 482 26 45.3 22.1 0.7X LongToUnsafeRowMap (opt=true) 118 120 6 178.1 5.6 2.8X BytesToBytesMap (off Heap) 935 937 2 22.4 44.6 0.4X BytesToBytesMap (on Heap) 897 901 5 23.4 42.8 0.4X Aggregate HashMap 57 58 0 369.9 2.7 5.8X