Avatar for the alloy-rs user
alloy-rs
nybbles
BlogDocsChangelog

bench: generate random inputs for each benchmark iteration

#25
Comparing
alexey/fix-benchmark-random-inputs
(
a4c8884
) with
main
(
866d3f7
)
CodSpeed Performance Gauge
-98%
Improvements
0
Regressions
62
Untouched
8
New
20
Dropped
45
Ignored
0

Benchmarks

Failed

nybbles[8]Missing
benches/bench.rs::benches::nibbles_benchmark::unpack::nybbles[8]
CodSpeed Performance Gauge
N/A
493.3 ns
N/A
nybbles[4]Missing
benches/bench.rs::benches::nibbles_benchmark::unpack::nybbles[4]
CodSpeed Performance Gauge
N/A
490.3 ns
N/A
nybbles[32]Missing
benches/bench.rs::benches::nibbles_benchmark::unpack::nybbles[32]
CodSpeed Performance Gauge
N/A
496.7 ns
N/A
nybbles[16]Missing
benches/bench.rs::benches::nibbles_benchmark::unpack::nybbles[16]
CodSpeed Performance Gauge
N/A
462.2 ns
N/A
naive[8]Missing
benches/bench.rs::benches::nibbles_benchmark::unpack::naive[8]
CodSpeed Performance Gauge
N/A
1.6 µs
N/A
naive[4]Missing
benches/bench.rs::benches::nibbles_benchmark::unpack::naive[4]
CodSpeed Performance Gauge
N/A
1.6 µs
N/A
naive[32]Missing
benches/bench.rs::benches::nibbles_benchmark::unpack::naive[32]
CodSpeed Performance Gauge
N/A
1.8 µs
N/A
naive[16]Missing
benches/bench.rs::benches::nibbles_benchmark::unpack::naive[16]
CodSpeed Performance Gauge
N/A
1.7 µs
N/A
nybbles[8]Missing
benches/bench.rs::benches::nibbles_benchmark::pack::nybbles[8]
CodSpeed Performance Gauge
N/A
436.4 ns
N/A
nybbles[64]Missing
benches/bench.rs::benches::nibbles_benchmark::pack::nybbles[64]
CodSpeed Performance Gauge
N/A
506.4 ns
N/A
nybbles[32]Missing
benches/bench.rs::benches::nibbles_benchmark::pack::nybbles[32]
CodSpeed Performance Gauge
N/A
466.4 ns
N/A
nybbles[16]Missing
benches/bench.rs::benches::nibbles_benchmark::pack::nybbles[16]
CodSpeed Performance Gauge
N/A
446.4 ns
N/A
naive[8]Missing
benches/bench.rs::benches::nibbles_benchmark::pack::naive[8]
CodSpeed Performance Gauge
N/A
1.7 µs
N/A
naive[64]Missing
benches/bench.rs::benches::nibbles_benchmark::pack::naive[64]
CodSpeed Performance Gauge
N/A
1.8 µs
N/A
naive[32]Missing
benches/bench.rs::benches::nibbles_benchmark::pack::naive[32]
CodSpeed Performance Gauge
N/A
1.7 µs
N/A
naive[16]Missing
benches/bench.rs::benches::nibbles_benchmark::pack::naive[16]
CodSpeed Performance Gauge
N/A
1.7 µs
N/A
to_end[8]Missing
benches/bench.rs::benches::bench_slice::slice::to_end[8]
CodSpeed Performance Gauge
N/A
368.6 ns
N/A
to_end[64]Missing
benches/bench.rs::benches::bench_slice::slice::to_end[64]
CodSpeed Performance Gauge
N/A
309.4 ns
N/A
to_end[32]Missing
benches/bench.rs::benches::bench_slice::slice::to_end[32]
CodSpeed Performance Gauge
N/A
338.3 ns
N/A
to_end[16]Missing
benches/bench.rs::benches::bench_slice::slice::to_end[16]
CodSpeed Performance Gauge
N/A
368.1 ns
N/A
middle[8]Missing
benches/bench.rs::benches::bench_slice::slice::middle[8]
CodSpeed Performance Gauge
N/A
490.6 ns
N/A
middle[64]Missing
benches/bench.rs::benches::bench_slice::slice::middle[64]
CodSpeed Performance Gauge
N/A
488.6 ns
N/A
middle[32]Missing
benches/bench.rs::benches::bench_slice::slice::middle[32]
CodSpeed Performance Gauge
N/A
489.2 ns
N/A
middle[16]Missing
benches/bench.rs::benches::bench_slice::slice::middle[16]
CodSpeed Performance Gauge
N/A
489.7 ns
N/A
from_start[8]Missing
benches/bench.rs::benches::bench_slice::slice::from_start[8]
CodSpeed Performance Gauge
N/A
399.7 ns
N/A
from_start[64]Missing
benches/bench.rs::benches::bench_slice::slice::from_start[64]
CodSpeed Performance Gauge
N/A
369.7 ns
N/A
from_start[32]Missing
benches/bench.rs::benches::bench_slice::slice::from_start[32]
CodSpeed Performance Gauge
N/A
398.6 ns
N/A
from_start[16]Missing
benches/bench.rs::benches::bench_slice::slice::from_start[16]
CodSpeed Performance Gauge
N/A
399.2 ns
N/A
pack_to[8]Missing
benches/bench.rs::benches::bench_pack::pack::pack_to[8]
CodSpeed Performance Gauge
N/A
351.7 ns
N/A
pack_to[4]Missing
benches/bench.rs::benches::bench_pack::pack::pack_to[4]
CodSpeed Performance Gauge
N/A
341.7 ns
N/A
pack_to[32]Missing
benches/bench.rs::benches::bench_pack::pack::pack_to[32]
CodSpeed Performance Gauge
N/A
440.8 ns
N/A
pack_to[16]Missing
benches/bench.rs::benches::bench_pack::pack::pack_to[16]
CodSpeed Performance Gauge
N/A
371.7 ns
N/A
pack[8]Missing
benches/bench.rs::benches::bench_pack::pack::pack[8]
CodSpeed Performance Gauge
N/A
475.6 ns
N/A
pack[4]Missing
benches/bench.rs::benches::bench_pack::pack::pack[4]
CodSpeed Performance Gauge
N/A
465.6 ns
N/A
pack[32]Missing
benches/bench.rs::benches::bench_pack::pack::pack[32]
CodSpeed Performance Gauge
N/A
535.6 ns
N/A
pack[16]Missing
benches/bench.rs::benches::bench_pack::pack::pack[16]
CodSpeed Performance Gauge
N/A
495.6 ns
N/A
join[64]Missing
benches/bench.rs::benches::bench_join::join[64]
CodSpeed Performance Gauge
N/A
2.3 µs
N/A
get_byte_unchecked[8]Missing
benches/bench.rs::benches::bench_get_byte::get_byte::get_byte_unchecked[8]
CodSpeed Performance Gauge
N/A
175 ns
N/A
get_byte_unchecked[64]Missing
benches/bench.rs::benches::bench_get_byte::get_byte::get_byte_unchecked[64]
CodSpeed Performance Gauge
N/A
421.9 ns
N/A
get_byte_unchecked[32]Missing
benches/bench.rs::benches::bench_get_byte::get_byte::get_byte_unchecked[32]
CodSpeed Performance Gauge
N/A
297.5 ns
N/A
get_byte_unchecked[16]Missing
benches/bench.rs::benches::bench_get_byte::get_byte::get_byte_unchecked[16]
CodSpeed Performance Gauge
N/A
206.1 ns
N/A
get_byte[8]Missing
benches/bench.rs::benches::bench_get_byte::get_byte::get_byte[8]
CodSpeed Performance Gauge
N/A
159.2 ns
N/A
get_byte[64]Missing
benches/bench.rs::benches::bench_get_byte::get_byte::get_byte[64]
CodSpeed Performance Gauge
N/A
515 ns
N/A
get_byte[32]Missing
benches/bench.rs::benches::bench_get_byte::get_byte::get_byte[32]
CodSpeed Performance Gauge
N/A
328.3 ns
N/A
get_byte[16]Missing
benches/bench.rs::benches::bench_get_byte::get_byte::get_byte[16]
CodSpeed Performance Gauge
N/A
205.8 ns
N/A
clone[16]Regression
benches/bench.rs::benches::bench_clone::clone[16]
CodSpeed Performance Gauge
-96%
335.3 ns
8,894.7 ns
clone[32]Regression
benches/bench.rs::benches::bench_clone::clone[32]
CodSpeed Performance Gauge
-97%
306.4 ns
8,893.3 ns
clone[64]Regression
benches/bench.rs::benches::bench_clone::clone[64]
CodSpeed Performance Gauge
-97%
306.4 ns
8,893.3 ns
clone[8]Regression
benches/bench.rs::benches::bench_clone::clone[8]
CodSpeed Performance Gauge
-96%
335.8 ns
8,950.3 ns
cmp[16]Regression
benches/bench.rs::benches::bench_cmp::cmp[16]
CodSpeed Performance Gauge
-97%
305.8 ns
8,861.4 ns
cmp[32]Regression
benches/bench.rs::benches::bench_cmp::cmp[32]
CodSpeed Performance Gauge
-96%
303.6 ns
8,550 ns
cmp[64]Regression
benches/bench.rs::benches::bench_cmp::cmp[64]
CodSpeed Performance Gauge
-96%
303.6 ns
8,579.2 ns
cmp[8]Regression
benches/bench.rs::benches::bench_cmp::cmp[8]
CodSpeed Performance Gauge
-97%
305.8 ns
8,825.6 ns
common_prefix_length[16]Regression
benches/bench.rs::benches::bench_common_prefix_length::common_prefix_length[16]
CodSpeed Performance Gauge
-98%
251.4 ns
10,220.3 ns
common_prefix_length[32]Regression
benches/bench.rs::benches::bench_common_prefix_length::common_prefix_length[32]
CodSpeed Performance Gauge
-98%
295.8 ns
13,048.1 ns
common_prefix_length[64]Regression
benches/bench.rs::benches::bench_common_prefix_length::common_prefix_length[64]
CodSpeed Performance Gauge
-98%
384.7 ns
16,682.8 ns
common_prefix_length[8]Regression
benches/bench.rs::benches::bench_common_prefix_length::common_prefix_length[8]
CodSpeed Performance Gauge
-98%
200 ns
9,120.3 ns
ends_with[16]Regression
benches/bench.rs::benches::bench_ends_with::ends_with[16]
CodSpeed Performance Gauge
-97%
276.9 ns
8,887.5 ns
ends_with[32]Regression
benches/bench.rs::benches::bench_ends_with::ends_with[32]
CodSpeed Performance Gauge
-97%
276.9 ns
8,870.3 ns
ends_with[64]Regression
benches/bench.rs::benches::bench_ends_with::ends_with[64]
CodSpeed Performance Gauge
-97%
276.9 ns
8,955 ns
ends_with[8]Regression
benches/bench.rs::benches::bench_ends_with::ends_with[8]
CodSpeed Performance Gauge
-97%
276.9 ns
8,782.8 ns
extend[16]Regression
benches/bench.rs::benches::bench_extend::extend[16]
CodSpeed Performance Gauge
-96%
466.4 ns
11,050 ns
extend[32]Regression
benches/bench.rs::benches::bench_extend::extend[32]
CodSpeed Performance Gauge
-96%
466.7 ns
11,105.6 ns
extend[8]Regression
benches/bench.rs::benches::bench_extend::extend[8]
CodSpeed Performance Gauge
-96%
496.1 ns
11,190.3 ns
first[16]Regression
benches/bench.rs::benches::bench_first::first[16]
CodSpeed Performance Gauge
-97%
150.8 ns
4,367.5 ns
first[32]Regression
benches/bench.rs::benches::bench_first::first[32]
CodSpeed Performance Gauge
-97%
150.8 ns
4,367.5 ns
first[64]Regression
benches/bench.rs::benches::bench_first::first[64]
CodSpeed Performance Gauge
-97%
150.8 ns
4,367.5 ns
first[8]Regression
benches/bench.rs::benches::bench_first::first[8]
CodSpeed Performance Gauge
-97%
150.8 ns
4,367.5 ns
from_nibbles[16]Regression
benches/bench.rs::benches::bench_from_nibbles::from_nibbles[16]
CodSpeed Performance Gauge
-97%
400.6 ns
12,657.2 ns
from_nibbles[32]Regression
benches/bench.rs::benches::bench_from_nibbles::from_nibbles[32]
CodSpeed Performance Gauge
-98%
402.8 ns
16,502.2 ns
from_nibbles[64]Regression
benches/bench.rs::benches::bench_from_nibbles::from_nibbles[64]
CodSpeed Performance Gauge
-98%
494.2 ns
24,182.8 ns
from_nibbles[8]Regression
benches/bench.rs::benches::bench_from_nibbles::from_nibbles[8]
CodSpeed Performance Gauge
-97%
385.6 ns
11,157.2 ns
from_vec_unchecked[16]Regression
benches/bench.rs::benches::bench_from_vec_unchecked::from_vec_unchecked[16]
CodSpeed Performance Gauge
-91%
1.5 µs
17.4 µs
from_vec_unchecked[32]Regression
benches/bench.rs::benches::bench_from_vec_unchecked::from_vec_unchecked[32]
CodSpeed Performance Gauge
-92%
1.5 µs
18.1 µs
from_vec_unchecked[64]Regression
benches/bench.rs::benches::bench_from_vec_unchecked::from_vec_unchecked[64]
CodSpeed Performance Gauge
-92%
1.5 µs
19.5 µs
from_vec_unchecked[8]Regression
benches/bench.rs::benches::bench_from_vec_unchecked::from_vec_unchecked[8]
CodSpeed Performance Gauge
-91%
1.5 µs
17.4 µs
increment[16]Regression
benches/bench.rs::benches::bench_increment::increment[16]
CodSpeed Performance Gauge
-95%
494.4 ns
10,795.3 ns
increment[32]Regression
benches/bench.rs::benches::bench_increment::increment[32]
CodSpeed Performance Gauge
-96%
467.8 ns
10,793.9 ns
increment[64]Regression
benches/bench.rs::benches::bench_increment::increment[64]
CodSpeed Performance Gauge
-96%
465.6 ns
10,789.4 ns
increment[8]Regression
benches/bench.rs::benches::bench_increment::increment[8]
CodSpeed Performance Gauge
-95%
495 ns
10,846.4 ns
join[16]Regression
benches/bench.rs::benches::bench_join::join[16]
CodSpeed Performance Gauge
-95%
955 ns
17,886.1 ns
join[32]Regression
benches/bench.rs::benches::bench_join::join[32]
CodSpeed Performance Gauge
-95%
925.6 ns
17,941.7 ns
join[8]Regression
benches/bench.rs::benches::bench_join::join[8]
CodSpeed Performance Gauge
-95%
956.1 ns
18,026.4 ns
last[16]Regression
benches/bench.rs::benches::bench_last::last[16]
CodSpeed Performance Gauge
-97%
150.8 ns
4,396.7 ns
last[32]Regression
benches/bench.rs::benches::bench_last::last[32]
CodSpeed Performance Gauge
-97%
121.7 ns
4,367.5 ns
last[64]Regression
benches/bench.rs::benches::bench_last::last[64]
CodSpeed Performance Gauge
-97%
121.7 ns
4,367.5 ns
last[8]Regression
benches/bench.rs::benches::bench_last::last[8]
CodSpeed Performance Gauge
-97%
150.8 ns
4,367.5 ns
pop[16]Regression
benches/bench.rs::benches::bench_pop::pop[16]
CodSpeed Performance Gauge
-96%
421.1 ns
11,458.6 ns
pop[32]Regression
benches/bench.rs::benches::bench_pop::pop[32]
CodSpeed Performance Gauge
-97%
541.1 ns
17,679.4 ns
pop[64]Regression
benches/bench.rs::benches::bench_pop::pop[64]
CodSpeed Performance Gauge
-97%
781.1 ns
30,123.9 ns
pop[8]Regression
benches/bench.rs::benches::bench_pop::pop[8]
CodSpeed Performance Gauge
-96%
361.1 ns
8,403.1 ns
push[16]Regression
benches/bench.rs::benches::bench_push::push[16]
CodSpeed Performance Gauge
-98%
514.7 ns
22,828.9 ns
push[32]Regression
benches/bench.rs::benches::bench_push::push[32]
CodSpeed Performance Gauge
-98%
665.8 ns
37,400.3 ns
push[64]Regression
benches/bench.rs::benches::bench_push::push[64]
CodSpeed Performance Gauge
-98%
997.2 ns
66,297.5 ns
push[8]Regression
benches/bench.rs::benches::bench_push::push[8]
CodSpeed Performance Gauge
-97%
439.2 ns
15,881.7 ns
set_at[16]Regression
benches/bench.rs::benches::bench_set_at::set_at[16]
CodSpeed Performance Gauge
-94%
392.8 ns
6,267.5 ns
set_at[32]Regression
benches/bench.rs::benches::bench_set_at::set_at[32]
CodSpeed Performance Gauge
-92%
512.8 ns
6,215 ns
set_at[64]Regression
benches/bench.rs::benches::bench_set_at::set_at[64]
CodSpeed Performance Gauge
-88%
752.8 ns
6,208.6 ns
set_at[8]Regression
benches/bench.rs::benches::bench_set_at::set_at[8]
CodSpeed Performance Gauge
-95%
332.8 ns
6,280 ns
starts_with[16]Regression
benches/bench.rs::benches::bench_starts_with::starts_with[16]
CodSpeed Performance Gauge
-97%
276.7 ns
8,830.6 ns
starts_with[32]Regression
benches/bench.rs::benches::bench_starts_with::starts_with[32]
CodSpeed Performance Gauge
-97%
276.7 ns
8,813.9 ns
starts_with[64]Regression
benches/bench.rs::benches::bench_starts_with::starts_with[64]
CodSpeed Performance Gauge
-97%
276.7 ns
8,923.9 ns
starts_with[8]Regression
benches/bench.rs::benches::bench_starts_with::starts_with[8]
CodSpeed Performance Gauge
-97%
276.7 ns
8,725.8 ns
unpack[16]Regression
benches/bench.rs::benches::bench_unpack::unpack[16]
CodSpeed Performance Gauge
-95%
461.7 ns
10,172.8 ns
unpack[32]Regression
benches/bench.rs::benches::bench_unpack::unpack[32]
CodSpeed Performance Gauge
-96%
466.9 ns
11,465 ns
unpack[4]Regression
benches/bench.rs::benches::bench_unpack::unpack[4]
CodSpeed Performance Gauge
-95%
489.7 ns
9,975.6 ns
unpack[8]Regression
benches/bench.rs::benches::bench_unpack::unpack[8]
CodSpeed Performance Gauge
-95%
492.8 ns
10,310.3 ns

New

get_byte[16]
benches/bench.rs::benches::bench_get_byte::get_byte[16]
CodSpeed Performance Gauge
N/A
N/A
3.3 µs
get_byte[32]
benches/bench.rs::benches::bench_get_byte::get_byte[32]
CodSpeed Performance Gauge
N/A
N/A
3.3 µs
get_byte[64]
benches/bench.rs::benches::bench_get_byte::get_byte[64]
CodSpeed Performance Gauge
N/A
N/A
3.3 µs
get_byte[8]
benches/bench.rs::benches::bench_get_byte::get_byte[8]
CodSpeed Performance Gauge
N/A
N/A
3.3 µs
get_byte_unchecked[16]
benches/bench.rs::benches::bench_get_byte::get_byte_unchecked[16]
CodSpeed Performance Gauge
N/A
N/A
3.2 µs
get_byte_unchecked[32]
benches/bench.rs::benches::bench_get_byte::get_byte_unchecked[32]
CodSpeed Performance Gauge
N/A
N/A
3.2 µs
get_byte_unchecked[64]
benches/bench.rs::benches::bench_get_byte::get_byte_unchecked[64]
CodSpeed Performance Gauge
N/A
N/A
3.2 µs
get_byte_unchecked[8]
benches/bench.rs::benches::bench_get_byte::get_byte_unchecked[8]
CodSpeed Performance Gauge
N/A
N/A
3.2 µs
pack[16]
benches/bench.rs::benches::bench_pack::pack[16]
CodSpeed Performance Gauge
N/A
N/A
9.5 µs
pack[32]
benches/bench.rs::benches::bench_pack::pack[32]
CodSpeed Performance Gauge
N/A
N/A
11.5 µs
pack[64]
benches/bench.rs::benches::bench_pack::pack[64]
CodSpeed Performance Gauge
N/A
N/A
15.5 µs
pack[8]
benches/bench.rs::benches::bench_pack::pack[8]
CodSpeed Performance Gauge
N/A
N/A
8.5 µs
pack_to[16]
benches/bench.rs::benches::bench_pack::pack_to[16]
CodSpeed Performance Gauge
N/A
N/A
20.6 µs
pack_to[32]
benches/bench.rs::benches::bench_pack::pack_to[32]
CodSpeed Performance Gauge
N/A
N/A
25.1 µs
pack_to[4]
benches/bench.rs::benches::bench_pack::pack_to[4]
CodSpeed Performance Gauge
N/A
N/A
17.5 µs
pack_to[8]
benches/bench.rs::benches::bench_pack::pack_to[8]
CodSpeed Performance Gauge
N/A
N/A
18.5 µs
slice[16]
benches/bench.rs::benches::bench_slice::slice[16]
CodSpeed Performance Gauge
N/A
N/A
9.8 µs
slice[32]
benches/bench.rs::benches::bench_slice::slice[32]
CodSpeed Performance Gauge
N/A
N/A
9.8 µs
slice[64]
benches/bench.rs::benches::bench_slice::slice[64]
CodSpeed Performance Gauge
N/A
N/A
9.8 µs
slice[8]
benches/bench.rs::benches::bench_slice::slice[8]
CodSpeed Performance Gauge
N/A
N/A
9.8 µs

Passed

clear[16]
benches/bench.rs::benches::bench_clear::clear[16]
CodSpeed Performance Gauge
N/A
< 1 ns
5.3 µs
clear[32]
benches/bench.rs::benches::bench_clear::clear[32]
CodSpeed Performance Gauge
N/A
< 1 ns
5.3 µs
clear[64]
benches/bench.rs::benches::bench_clear::clear[64]
CodSpeed Performance Gauge
N/A
< 1 ns
5.3 µs
clear[8]
benches/bench.rs::benches::bench_clear::clear[8]
CodSpeed Performance Gauge
N/A
< 1 ns
5.4 µs
truncate[16]
benches/bench.rs::benches::bench_truncate::truncate[16]
CodSpeed Performance Gauge
N/A
< 1 ns
5.9 µs
truncate[32]
benches/bench.rs::benches::bench_truncate::truncate[32]
CodSpeed Performance Gauge
N/A
< 1 ns
5.9 µs
truncate[64]
benches/bench.rs::benches::bench_truncate::truncate[64]
CodSpeed Performance Gauge
N/A
< 1 ns
5.9 µs
truncate[8]
benches/bench.rs::benches::bench_truncate::truncate[8]
CodSpeed Performance Gauge
N/A
< 1 ns
6 µs

Commits

Click on a commit to change the comparison range
Base
main
866d3f7
-64%
fix: generate random inputs for each benchmark iteration Previously benchmarks reused the same static data for all iterations, which could lead to unrealistic performance measurements due to cache effects and lack of input variation. Changes: - Add rand dependency for random data generation - Replace static data setup with iter_batched pattern - Generate fresh random inputs for each benchmark iteration - Update all 20+ benchmark functions to use random inputs - Remove unused helper functions This ensures more realistic and robust performance measurements by testing with varied inputs on each iteration. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
98b6d0e
2 months ago
by shekhirin
0%
fmt
0a3f472
2 months ago
by shekhirin
-35%
use square brackets in bench names
a4c8884
2 months ago
by shekhirin
© 2025 CodSpeed Technology
Home Terms Privacy Docs