Files
sdk/benchmarks
Modestas Valauskas ace4bb1ad6 [benchmarks] Add BitArray benchmark
Adds a benchmark exercising int.oneBitCount and int.trailingZeroBitCount
(landed in CL 498041) and a representative set of Int32x4 SIMD bitwise
kernels, through a small bit-array implementation built on a Uint32List
word store.

Kernels:
- cardinality: popcount across the array.
- forEachSetBit: Brian-Kernighan iteration via ctz.
- select(k): position of the k-th set bit using popcount + ctz.
- complementCardinality: popcount of bitwise-NOT per word.
- totalBitLength: sum of int.bitLength per word.
- intersection / union / xor / difference: pair-op bitwise kernels using
  Int32x4 SIMD with a scalar tail.
- complement: single-input bitwise NOT via Int32x4 XOR-with-all-ones.

Each kernel has a Swar baseline using portable bit-twiddle code and an
Accelerated variant that uses the new int getters or Int32x4 SIMD, so
the speedup attributable to the hardware/intrinsic path is visible
directly. main() first runs a correctness check that asserts both
implementations agree across a representative range of sizes and bit
densities, then reports timings via the standard BenchmarkBase harness.

Work towards https://github.com/dart-lang/sdk/issues/1053 (efficient
BitSet implementation).

Bug: https://github.com/dart-lang/sdk/issues/52673
Change-Id: I5ae5bc0b9d07f6de3e11907ac1fae80f02e77119
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/503020
Commit-Queue: Slava Egorov <vegorov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Auto-Submit: Modestas Valauskas <valauskasmodestas@gmail.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
2026-05-18 03:21:30 -07:00
..
2024-11-18 10:06:01 +00:00
2024-11-18 10:06:01 +00:00
2024-11-18 10:06:01 +00:00
2024-11-18 10:06:01 +00:00
2024-11-18 10:06:01 +00:00
2024-11-18 10:06:01 +00:00
2024-11-18 10:06:01 +00:00