[libcxx-commits] [libcxx] [libcxx] Added segmented iterator for count_if (PR #105888)

via libcxx-commits libcxx-commits at lists.llvm.org
Mon Sep 2 01:43:00 PDT 2024


adeel10x wrote:

@philnik777 

**Benchmark Results**

No Segmented Iterators:

```
--------------------------------------------------------------------
Benchmark                          Time             CPU   Iterations
--------------------------------------------------------------------
bm_deque_count_if/1             3.08 ns         3.08 ns    226984141
bm_deque_count_if/2             4.46 ns         4.46 ns    156429484
bm_deque_count_if/3             5.98 ns         5.98 ns    115885151
bm_deque_count_if/4             7.52 ns         7.52 ns     93043742
bm_deque_count_if/5             9.05 ns         9.05 ns     75287677
bm_deque_count_if/6             10.4 ns         10.4 ns     66611545
bm_deque_count_if/7             11.7 ns         11.7 ns     59514310
bm_deque_count_if/8             13.2 ns         13.2 ns     53095296
bm_deque_count_if/16            25.1 ns         25.1 ns     27443718
bm_deque_count_if/64            90.9 ns         90.9 ns      7570199
bm_deque_count_if/512            576 ns          575 ns      1199055
bm_deque_count_if/4096          4512 ns         4510 ns       157707
bm_deque_count_if/32768        35522 ns        35516 ns        18694
bm_deque_count_if/262144      284234 ns       284217 ns         2443
bm_deque_count_if/1048576    1137323 ns      1137278 ns          613
```

With Segmented Iterators:

```
--------------------------------------------------------------------
Benchmark                          Time             CPU   Iterations
--------------------------------------------------------------------
bm_deque_count_if/1             3.28 ns         3.28 ns    211244390
bm_deque_count_if/2             5.23 ns         5.23 ns    173814635
bm_deque_count_if/3             6.44 ns         6.32 ns    137650491
bm_deque_count_if/4             6.69 ns         6.69 ns    100575185
bm_deque_count_if/5             7.61 ns         7.60 ns     88425507
bm_deque_count_if/6             8.54 ns         8.54 ns     81768351
bm_deque_count_if/7             9.37 ns         9.37 ns     73757989
bm_deque_count_if/8             9.41 ns         9.41 ns     74463399
bm_deque_count_if/16            13.5 ns         13.5 ns     51855512
bm_deque_count_if/64            42.3 ns         42.3 ns     16525076
bm_deque_count_if/512            322 ns          322 ns      2182643
bm_deque_count_if/4096          2503 ns         2502 ns       279781
bm_deque_count_if/32768        19837 ns        19834 ns        34882
bm_deque_count_if/262144      158401 ns       158381 ns         4410
bm_deque_count_if/1048576     635963 ns       635955 ns         1078
```

https://github.com/llvm/llvm-project/pull/105888


More information about the libcxx-commits mailing list