Fields
| hardware | None |
| os | None |
Parameters
Fields
| Name | Value |
|---|
Parameters
| Name | Value |
|---|---|
| git_commit |
commit 253e43590842bffcc6950cc517a7f89cafe5ec69 Author: Nikolas Klauser <nikolasklauser@berlin.de> Date: Tue Oct 21 10:20:06 2025 +0200 Reapply "[libc++] Optimize __hash_table::erase(iterator, iterator)" (#162850) This reapplication fixes the use after free caused by not properly updating the bucket list in one case. Original commit message: Instead of just calling the single element `erase` on every element of the range, we can combine some of the operations in a custom implementation. Specifically, we don't need to search for the previous node or re-link the list every iteration. Removing this unnecessary work results in some nice performance improvements: ``` ----------------------------------------------------------------------------------------------------------------------- Benchmark old new ----------------------------------------------------------------------------------------------------------------------- std::unordered_set<int>::erase(iterator, iterator) (erase half the container)/0 457 ns 459 ns std::unordered_set<int>::erase(iterator, iterator) (erase half the container)/32 995 ns 626 ns std::unordered_set<int>::erase(iterator, iterator) (erase half the container)/1024 18196 ns 7995 ns std::unordered_set<int>::erase(iterator, iterator) (erase half the container)/8192 124722 ns 70125 ns std::unordered_set<std::string>::erase(iterator, iterator) (erase half the container)/0 456 ns 461 ns std::unordered_set<std::string>::erase(iterator, iterator) (erase half the container)/32 1183 ns 769 ns std::unordered_set<std::string>::erase(iterator, iterator) (erase half the container)/1024 27827 ns 18614 ns std::unordered_set<std::string>::erase(iterator, iterator) (erase half the container)/8192 266681 ns 226107 ns std::unordered_map<int, int>::erase(iterator, iterator) (erase half the container)/0 455 ns 462 ns std::unordered_map<int, int>::erase(iterator, iterator) (erase half the container)/32 996 ns 659 ns std::unordered_map<int, int>::erase(iterator, iterator) (erase half the container)/1024 15963 ns 8108 ns std::unordered_map<int, int>::erase(iterator, iterator) (erase half the container)/8192 136493 ns 71848 ns std::unordered_multiset<int>::erase(iterator, iterator) (erase half the container)/0 454 ns 455 ns std::unordered_multiset<int>::erase(iterator, iterator) (erase half the container)/32 985 ns 703 ns std::unordered_multiset<int>::erase(iterator, iterator) (erase half the container)/1024 16277 ns 9085 ns std::unordered_multiset<int>::erase(iterator, iterator) (erase half the container)/8192 125736 ns 82710 ns std::unordered_multimap<int, int>::erase(iterator, iterator) (erase half the container)/0 457 ns 454 ns std::unordered_multimap<int, int>::erase(iterator, iterator) (erase half the container)/32 1091 ns 646 ns std::unordered_multimap<int, int>::erase(iterator, iterator) (erase half the container)/1024 17784 ns 7664 ns std::unordered_multimap<int, int>::erase(iterator, iterator) (erase half the container)/8192 127098 ns 72806 ns ``` This reverts commit acc3a6234a91369b818fdd6482ded0ac32d8ffa6. |
Filter
ldionne-old-macbook-results test results
| Run | Order | Start Time | Duration |
|---|---|---|---|
| Current | 556660 | 2025-12-16T16:40:01 | 0:00:00 |
| Previous | 556167 | 2025-12-16T16:40:01 | 0:00:00 |
| Baseline | 485288 | 2025-12-16T16:40:01 | 0:00:00 |
Tests Summary
| Status Group | # | # (B) |
|---|---|---|
| Performance Regressions | 6 | 0 |
| Performance Improvements | 1 | 0 |
| Added Tests | 0 | 16 |
| Unchanged Tests | 73 | 64 |
| Total Tests | 80 |
| Performance Regressions - execution_time | Δ | Previous | Current | σ | Δ (B) | σ (B) |
|---|---|---|---|---|---|---|
| 706_stockfish_r | 4.46% | 20.673 | 21.596 | - | 0.00% | - |
| 753_ns3_r | 2.97% | 9.931 | 10.226 | - | 0.00% | - |
| 709_cactus_r | 2.30% | 19.303 | 19.747 | - | 0.00% | - |
| 707_ntest_r | 2.07% | 16.218 | 16.554 | - | 0.00% | - |
| 727_cppcheck_r | 1.81% | 24.257 | 24.695 | - | 0.00% | - |
| 766_femflow_r | 1.08% | 12.727 | 12.865 | - | 0.00% | - |
| Performance Improvements - execution_time | Δ | Previous | Current | σ | Δ (B) | σ (B) |
|---|---|---|---|---|---|---|
| 748_flightdm_r | -1.51% | 9.079 | 8.942 | - | 0.00% | - |
| Added Tests - execution_time |
|---|
| 706_stockfish_r |
| 707_ntest_r |
| 709_cactus_r |
| 710_omnetpp_r |
| 721_gcc_r |
| 723_llvm_r |
| 727_cppcheck_r |
| 729_abc_r |
| 731_astcenc_r |
| 735_gem5_r |
| 736_ocio_r |
| 737_gmsh_r |
| 748_flightdm_r |
| 750_sealcrypto_r |
| 753_ns3_r |
| 766_femflow_r |
Report Time: 0.30s