[libcxx-commits] [libcxx] [libcxx] Avoid hash key in __hash_table::find() if no buckets yet. (PR #126837)
via libcxx-commits
libcxx-commits at lists.llvm.org
Sun Feb 16 19:56:17 PST 2025
xbcnn wrote:
Updated benchmarks:
Opt with size() check
```
# | --------------------------------------------------------------------------------------------------
# | Benchmark Time CPU Iterations
# | --------------------------------------------------------------------------------------------------
# | BM_UnorderedSet_Find_EmptyNoBuckets/long_string/1024 12121 ns 12120 ns 57902
# | BM_UnorderedSet_Find_EmptyNoBuckets/long_string/2048 24171 ns 24170 ns 28959
# | BM_UnorderedSet_Find_EmptyNoBuckets/long_string/4096 48279 ns 48277 ns 14452
# | BM_UnorderedSet_Find_EmptyNoBuckets/long_string/8192 96207 ns 96204 ns 7221
# | BM_UnorderedSet_Find_EmptyNoBuckets/long_string/16384 193415 ns 193404 ns 3611
# | BM_UnorderedSet_Find_EmptyNoBuckets/long_string/32768 384792 ns 384784 ns 1820
# | BM_UnorderedSet_Find_EmptyWithBuckets/long_string/1024 12823 ns 12822 ns 54793
# | BM_UnorderedSet_Find_EmptyWithBuckets/long_string/2048 25686 ns 25683 ns 27212
# | BM_UnorderedSet_Find_EmptyWithBuckets/long_string/4096 51277 ns 51275 ns 13573
# | BM_UnorderedSet_Find_EmptyWithBuckets/long_string/8192 102201 ns 102200 ns 6820
# | BM_UnorderedSet_Find_EmptyWithBuckets/long_string/16384 204915 ns 204908 ns 3405
# | BM_UnorderedSet_Find_EmptyWithBuckets/long_string/32768 410902 ns 410897 ns 1707
# | BM_UnorderedSet_Find_NonEmpty/long_string/1024 191005 ns 190999 ns 3666
# | BM_UnorderedSet_Find_NonEmpty/long_string/2048 379653 ns 379640 ns 1844
# | BM_UnorderedSet_Find_NonEmpty/long_string/4096 756648 ns 756610 ns 925
# | BM_UnorderedSet_Find_NonEmpty/long_string/8192 1510045 ns 1509964 ns 464
# | BM_UnorderedSet_Find_NonEmpty/long_string/16384 3026213 ns 3026010 ns 231
# | BM_UnorderedSet_Find_NonEmpty/long_string/32768 6045257 ns 6044974 ns 116
```
No opt
```
# | --------------------------------------------------------------------------------------------------
# | Benchmark Time CPU Iterations
# | --------------------------------------------------------------------------------------------------
# | BM_UnorderedSet_Find_EmptyNoBuckets/long_string/1024 162638 ns 162636 ns 4304
# | BM_UnorderedSet_Find_EmptyNoBuckets/long_string/2048 323928 ns 323921 ns 2159
# | BM_UnorderedSet_Find_EmptyNoBuckets/long_string/4096 645449 ns 645442 ns 1083
# | BM_UnorderedSet_Find_EmptyNoBuckets/long_string/8192 1288309 ns 1288282 ns 544
# | BM_UnorderedSet_Find_EmptyNoBuckets/long_string/16384 2585671 ns 2585642 ns 271
# | BM_UnorderedSet_Find_EmptyNoBuckets/long_string/32768 5299328 ns 5299122 ns 135
# | BM_UnorderedSet_Find_EmptyWithBuckets/long_string/1024 169348 ns 169346 ns 4134
# | BM_UnorderedSet_Find_EmptyWithBuckets/long_string/2048 337295 ns 337280 ns 2075
# | BM_UnorderedSet_Find_EmptyWithBuckets/long_string/4096 671712 ns 671700 ns 1043
# | BM_UnorderedSet_Find_EmptyWithBuckets/long_string/8192 1340185 ns 1340169 ns 523
# | BM_UnorderedSet_Find_EmptyWithBuckets/long_string/16384 2689863 ns 2689757 ns 260
# | BM_UnorderedSet_Find_EmptyWithBuckets/long_string/32768 5378439 ns 5378379 ns 130
# | BM_UnorderedSet_Find_NonEmpty/long_string/1024 186529 ns 186524 ns 3751
# | BM_UnorderedSet_Find_NonEmpty/long_string/2048 370669 ns 370665 ns 1888
# | BM_UnorderedSet_Find_NonEmpty/long_string/4096 739087 ns 739044 ns 947
# | BM_UnorderedSet_Find_NonEmpty/long_string/8192 1476207 ns 1476178 ns 474
# | BM_UnorderedSet_Find_NonEmpty/long_string/16384 2953631 ns 2953560 ns 237
# | BM_UnorderedSet_Find_NonEmpty/long_string/32768 5902677 ns 5902474 ns 118
```
https://github.com/llvm/llvm-project/pull/126837
More information about the libcxx-commits
mailing list