wesm commented on pull request #7525:
URL: https://github.com/apache/arrow/pull/7525#issuecomment-648238512
Here are some vector-hash benchmarks comparing this branch with master. The
performance "regressions" are for the 99%-100% null cases, I'll take a quick
look at these in the implementation but these perf changes don't concern me
```
$ archery benchmark diff --cc=gcc-8 --cxx=g++-8 ARROW-9214 master
--suite-filter=vector-hash
benchmark baseline contender change %
counters
35 UniqueInt64/13 3.377 GiB/sec 14.983 GiB/sec 343.678
{'iterations': 76, 'null_percent': 100.0, 'num_unique': 100000.0}
23 UniqueInt64/6 3.401 GiB/sec 14.871 GiB/sec 337.243
{'iterations': 76, 'null_percent': 100.0, 'num_unique': 100.0}
42 UniqueInt64/5 2.642 GiB/sec 7.320 GiB/sec 177.036
{'iterations': 57, 'null_percent': 99.0, 'num_unique': 100.0}
27 UniqueInt64/12 2.268 GiB/sec 5.175 GiB/sec 128.206
{'iterations': 50, 'null_percent': 99.0, 'num_unique': 100000.0}
33 UniqueInt64/0 2.121 GiB/sec 4.793 GiB/sec 125.974
{'iterations': 48, 'null_percent': 0.0, 'num_unique': 100.0}
31 UniqueInt64/1 1.994 GiB/sec 4.212 GiB/sec 111.160
{'iterations': 44, 'null_percent': 0.1, 'num_unique': 100.0}
11 UniqueInt64/10 565.967 MiB/sec 1.054 GiB/sec 90.635
{'iterations': 12, 'null_percent': 10.0, 'num_unique': 100000.0}
44 UniqueInt64/2 1.810 GiB/sec 3.215 GiB/sec 77.589
{'iterations': 41, 'null_percent': 1.0, 'num_unique': 100.0}
34 UniqueInt64/9 679.320 MiB/sec 1.113 GiB/sec 67.808
{'iterations': 14, 'null_percent': 1.0, 'num_unique': 100000.0}
32 UniqueInt64/11 618.468 MiB/sec 959.261 MiB/sec 55.103
{'iterations': 12, 'null_percent': 50.0, 'num_unique': 100000.0}
3 UniqueInt64/8 785.346 MiB/sec 1.186 GiB/sec 54.663
{'iterations': 18, 'null_percent': 0.1, 'num_unique': 100000.0}
7 UniqueInt64/7 846.630 MiB/sec 1.241 GiB/sec 50.088
{'iterations': 18, 'null_percent': 0.0, 'num_unique': 100000.0}
8 UniqueInt64/3 1.510 GiB/sec 2.212 GiB/sec 46.508
{'iterations': 34, 'null_percent': 10.0, 'num_unique': 100.0}
28 UniqueInt64/4 1.066 GiB/sec 1.398 GiB/sec 31.131
{'iterations': 24, 'null_percent': 50.0, 'num_unique': 100.0}
24 BuildDictionary 1014.450 MiB/sec 1.282 GiB/sec 29.367
{'iterations': 177, 'null_percent': 11.111047470674487}
19 UniqueUInt8/1 1.322 GiB/sec 1.453 GiB/sec 9.968
{'iterations': 241, 'null_percent': 0.1, 'num_unique': 200.0}
12 UniqueUInt8/3 434.316 MiB/sec 443.925 MiB/sec 2.212
{'iterations': 76, 'null_percent': 10.0, 'num_unique': 200.0}
30 UniqueString100bytes/8 1.025 GiB/sec 1.043 GiB/sec 1.705
{'iterations': 2, 'null_percent': 0.1, 'num_unique': 100000.0}
22 UniqueUInt8/2 837.222 MiB/sec 848.342 MiB/sec 1.328
{'iterations': 145, 'null_percent': 1.0, 'num_unique': 200.0}
29 UniqueUInt8/6 1.759 GiB/sec 1.778 GiB/sec 1.065
{'iterations': 316, 'null_percent': 100.0, 'num_unique': 200.0}
47 UniqueString100bytes/1 4.643 GiB/sec 4.661 GiB/sec 0.373
{'iterations': 8, 'null_percent': 0.1, 'num_unique': 100.0}
25 UniqueString100bytes/2 4.654 GiB/sec 4.669 GiB/sec 0.326
{'iterations': 8, 'null_percent': 1.0, 'num_unique': 100.0}
6 UniqueString10bytes/8 311.452 MiB/sec 310.589 MiB/sec -0.277
{'iterations': 5, 'null_percent': 0.1, 'num_unique': 100000.0}
43 UniqueString10bytes/7 316.291 MiB/sec 315.246 MiB/sec -0.330
{'iterations': 5, 'null_percent': 0.0, 'num_unique': 100000.0}
37 UniqueString100bytes/11 1.883 GiB/sec 1.876 GiB/sec -0.402
{'iterations': 3, 'null_percent': 50.0, 'num_unique': 100000.0}
15 UniqueString100bytes/10 1.130 GiB/sec 1.125 GiB/sec -0.407
{'iterations': 2, 'null_percent': 10.0, 'num_unique': 100000.0}
48 UniqueString10bytes/10 333.843 MiB/sec 331.318 MiB/sec -0.756
{'iterations': 6, 'null_percent': 10.0, 'num_unique': 100000.0}
2 UniqueString10bytes/9 313.340 MiB/sec 310.886 MiB/sec -0.783
{'iterations': 5, 'null_percent': 1.0, 'num_unique': 100000.0}
17 UniqueUInt8/4 210.495 MiB/sec 208.540 MiB/sec -0.929
{'iterations': 37, 'null_percent': 50.0, 'num_unique': 200.0}
36 UniqueString100bytes/7 1.038 GiB/sec 1.029 GiB/sec -0.950
{'iterations': 2, 'null_percent': 0.0, 'num_unique': 100000.0}
20 UniqueString100bytes/0 4.733 GiB/sec 4.676 GiB/sec -1.217
{'iterations': 9, 'null_percent': 0.0, 'num_unique': 100.0}
9 UniqueString10bytes/1 864.482 MiB/sec 846.163 MiB/sec -2.119
{'iterations': 15, 'null_percent': 0.1, 'num_unique': 100.0}
40 UniqueString100bytes/9 1.053 GiB/sec 1.030 GiB/sec -2.164
{'iterations': 2, 'null_percent': 1.0, 'num_unique': 100000.0}
49 UniqueString10bytes/0 888.924 MiB/sec 867.735 MiB/sec -2.384
{'iterations': 15, 'null_percent': 0.0, 'num_unique': 100.0}
50 UniqueString10bytes/2 847.994 MiB/sec 814.093 MiB/sec -3.998
{'iterations': 15, 'null_percent': 1.0, 'num_unique': 100.0}
18 BuildStringDictionary 83.145 MiB/sec 79.804 MiB/sec -4.018
{'iterations': 193}
4 UniqueString100bytes/3 4.929 GiB/sec 4.705 GiB/sec -4.537
{'iterations': 9, 'null_percent': 10.0, 'num_unique': 100.0}
0 UniqueString100bytes/4 6.460 GiB/sec 6.033 GiB/sec -6.613
{'iterations': 11, 'null_percent': 50.0, 'num_unique': 100.0}
39 UniqueString10bytes/11 523.332 MiB/sec 485.400 MiB/sec -7.248
{'iterations': 9, 'null_percent': 50.0, 'num_unique': 100000.0}
46 UniqueUInt8/0 2.000 GiB/sec 1.839 GiB/sec -8.028
{'iterations': 357, 'null_percent': 0.0, 'num_unique': 200.0}
5 UniqueString10bytes/3 860.971 MiB/sec 780.666 MiB/sec -9.327
{'iterations': 15, 'null_percent': 10.0, 'num_unique': 100.0}
16 UniqueString10bytes/4 1001.379 MiB/sec 853.948 MiB/sec -14.723
{'iterations': 18, 'null_percent': 50.0, 'num_unique': 100.0}
45 UniqueUInt8/5 1.113 GiB/sec 951.864 MiB/sec -16.483
{'iterations': 198, 'null_percent': 99.0, 'num_unique': 200.0}
13 UniqueString100bytes/12 55.644 GiB/sec 26.845 GiB/sec -51.757
{'iterations': 90, 'null_percent': 99.0, 'num_unique': 100000.0}
21 UniqueString10bytes/12 6.835 GiB/sec 3.059 GiB/sec -55.249
{'iterations': 115, 'null_percent': 99.0, 'num_unique': 100000.0}
41 UniqueString100bytes/5 87.160 GiB/sec 33.534 GiB/sec -61.526
{'iterations': 158, 'null_percent': 99.0, 'num_unique': 100.0}
10 UniqueString10bytes/5 9.343 GiB/sec 3.447 GiB/sec -63.110
{'iterations': 167, 'null_percent': 99.0, 'num_unique': 100.0}
1 UniqueString10bytes/13 27.211 GiB/sec 4.708 GiB/sec -82.700
{'iterations': 492, 'null_percent': 100.0, 'num_unique': 100000.0}
26 UniqueString10bytes/6 27.206 GiB/sec 4.698 GiB/sec -82.731
{'iterations': 490, 'null_percent': 100.0, 'num_unique': 100.0}
38 UniqueString100bytes/6 272.658 GiB/sec 47.068 GiB/sec -82.737
{'iterations': 470, 'null_percent': 100.0, 'num_unique': 100.0}
14 UniqueString100bytes/13 272.585 GiB/sec 46.815 GiB/sec -82.826
{'iterations': 490, 'null_percent': 100.0, 'num_unique': 100000.0}
```
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]