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

fix: `pack_to_unchecked` on big-endian targets

#35Merged
Comparing
clabby:cl/pack-fix
(
0b24fb4
) with
main
(
7f36b9c
)
CodSpeed Performance Gauge
-21%
Improvements
44
Regressions
7
Untouched
60
New
0
Dropped
0
Ignored
0

Benchmarks

Failed

ends_with[16]Regression
benches/bench.rs::benches::bench_ends_with::ends_with[16]
CodSpeed Performance Gauge
-21%
342.2 ns
432.8 ns
ends_with[8]Regression
benches/bench.rs::benches::bench_ends_with::ends_with[8]
CodSpeed Performance Gauge
-15%
339.7 ns
398.1 ns
extend[16]Regression
benches/bench.rs::benches::bench_extend::extend[16]
CodSpeed Performance Gauge
-19%
383.9 ns
471.4 ns
extend[32]Regression
benches/bench.rs::benches::bench_extend::extend[32]
CodSpeed Performance Gauge
-20%
350.6 ns
438.1 ns
extend[8]Regression
benches/bench.rs::benches::bench_extend::extend[8]
CodSpeed Performance Gauge
-18%
386.7 ns
474.2 ns
get_byte_unchecked[16]Regression
benches/bench.rs::benches::bench_get_byte::get_byte::get_byte_unchecked[16]
CodSpeed Performance Gauge
-10%
250 ns
279.2 ns
get_byte_unchecked[8]Regression
benches/bench.rs::benches::bench_get_byte::get_byte::get_byte_unchecked[8]
CodSpeed Performance Gauge
-13%
194.4 ns
223.6 ns

Improved

truncate[16]
benches/bench.rs::benches::bench_truncate::truncate[16]
CodSpeed Performance Gauge
+47%
90.8 ns
61.7 ns
truncate[32]
benches/bench.rs::benches::bench_truncate::truncate[32]
CodSpeed Performance Gauge
+47%
90.8 ns
61.7 ns
truncate[64]
benches/bench.rs::benches::bench_truncate::truncate[64]
CodSpeed Performance Gauge
+47%
90.8 ns
61.7 ns
truncate[8]
benches/bench.rs::benches::bench_truncate::truncate[8]
CodSpeed Performance Gauge
+47%
90.8 ns
61.7 ns
first[16]
benches/bench.rs::benches::bench_first::first[16]
CodSpeed Performance Gauge
+32%
120.3 ns
91.1 ns
first[32]
benches/bench.rs::benches::bench_first::first[32]
CodSpeed Performance Gauge
+32%
120.3 ns
91.1 ns
first[64]
benches/bench.rs::benches::bench_first::first[64]
CodSpeed Performance Gauge
+32%
120.3 ns
91.1 ns
first[8]
benches/bench.rs::benches::bench_first::first[8]
CodSpeed Performance Gauge
+32%
120.3 ns
91.1 ns
join[64]
benches/bench.rs::benches::bench_join::join[64]
CodSpeed Performance Gauge
+27%
276.7 ns
218.3 ns
last[16]
benches/bench.rs::benches::bench_last::last[16]
CodSpeed Performance Gauge
+24%
152.2 ns
123.1 ns
last[32]
benches/bench.rs::benches::bench_last::last[32]
CodSpeed Performance Gauge
+24%
152.2 ns
123.1 ns
last[8]
benches/bench.rs::benches::bench_last::last[8]
CodSpeed Performance Gauge
+24%
152.2 ns
123.1 ns
nybbles[32]
benches/bench.rs::benches::nibbles_benchmark::unpack::nybbles[32]
CodSpeed Performance Gauge
+23%
307.5 ns
249.2 ns
to_end[32]
benches/bench.rs::benches::bench_slice::slice::to_end[32]
CodSpeed Performance Gauge
+23%
312.2 ns
253.9 ns
to_end[64]
benches/bench.rs::benches::bench_slice::slice::to_end[64]
CodSpeed Performance Gauge
+23%
312.2 ns
253.9 ns
to_end[16]
benches/bench.rs::benches::bench_slice::slice::to_end[16]
CodSpeed Performance Gauge
+22%
319.2 ns
260.8 ns
to_end[8]
benches/bench.rs::benches::bench_slice::slice::to_end[8]
CodSpeed Performance Gauge
+22%
319.2 ns
260.8 ns
increment[16]
benches/bench.rs::benches::bench_increment::increment[16]
CodSpeed Performance Gauge
+19%
365.8 ns
307.5 ns
increment[32]
benches/bench.rs::benches::bench_increment::increment[32]
CodSpeed Performance Gauge
+19%
365.8 ns
307.5 ns
increment[64]
benches/bench.rs::benches::bench_increment::increment[64]
CodSpeed Performance Gauge
+19%
365.8 ns
307.5 ns
increment[8]
benches/bench.rs::benches::bench_increment::increment[8]
CodSpeed Performance Gauge
+19%
365.8 ns
307.5 ns
from_start[16]
benches/bench.rs::benches::bench_slice::slice::from_start[16]
CodSpeed Performance Gauge
+17%
400.8 ns
342.5 ns
from_start[32]
benches/bench.rs::benches::bench_slice::slice::from_start[32]
CodSpeed Performance Gauge
+17%
400.8 ns
342.5 ns
from_start[64]
benches/bench.rs::benches::bench_slice::slice::from_start[64]
CodSpeed Performance Gauge
+17%
400.8 ns
342.5 ns
from_start[8]
benches/bench.rs::benches::bench_slice::slice::from_start[8]
CodSpeed Performance Gauge
+17%
400.8 ns
342.5 ns
pack[4]
benches/bench.rs::benches::bench_pack::pack::pack[4]
CodSpeed Performance Gauge
+15%
459.2 ns
400.8 ns
nybbles[8]
benches/bench.rs::benches::nibbles_benchmark::pack::nybbles[8]
CodSpeed Performance Gauge
+15%
459.2 ns
400.8 ns
pack[8]
benches/bench.rs::benches::bench_pack::pack::pack[8]
CodSpeed Performance Gauge
+14%
462.2 ns
403.9 ns
nybbles[16]
benches/bench.rs::benches::nibbles_benchmark::pack::nybbles[16]
CodSpeed Performance Gauge
+14%
462.2 ns
403.9 ns
pack[16]
benches/bench.rs::benches::bench_pack::pack::pack[16]
CodSpeed Performance Gauge
+14%
468.3 ns
410 ns
nybbles[32]
benches/bench.rs::benches::nibbles_benchmark::pack::nybbles[32]
CodSpeed Performance Gauge
+14%
468.3 ns
410 ns
pack[32]
benches/bench.rs::benches::bench_pack::pack::pack[32]
CodSpeed Performance Gauge
+13%
492.2 ns
433.9 ns
nybbles[64]
benches/bench.rs::benches::nibbles_benchmark::pack::nybbles[64]
CodSpeed Performance Gauge
+13%
492.2 ns
433.9 ns
nybbles[4]
benches/bench.rs::benches::nibbles_benchmark::unpack::nybbles[4]
CodSpeed Performance Gauge
+13%
247.2 ns
218.1 ns
nybbles[8]
benches/bench.rs::benches::nibbles_benchmark::unpack::nybbles[8]
CodSpeed Performance Gauge
+13%
250.3 ns
221.1 ns
set_at[8]
benches/bench.rs::benches::bench_set_at::set_at[8]
CodSpeed Performance Gauge
+12%
271.9 ns
242.8 ns
nybbles[16]
benches/bench.rs::benches::nibbles_benchmark::unpack::nybbles[16]
CodSpeed Performance Gauge
+12%
274.4 ns
245.3 ns
unpack[4]
benches/bench.rs::benches::bench_unpack::unpack[4]
CodSpeed Performance Gauge
+11%
305.3 ns
276.1 ns
pack_to[4]
benches/bench.rs::benches::bench_pack::pack::pack_to[4]
CodSpeed Performance Gauge
+10%
308.1 ns
278.9 ns
unpack[8]
benches/bench.rs::benches::bench_unpack::unpack[8]
CodSpeed Performance Gauge
+10%
308.3 ns
279.2 ns
pack_to[8]
benches/bench.rs::benches::bench_pack::pack::pack_to[8]
CodSpeed Performance Gauge
+10%
311.1 ns
281.9 ns
pack_to[32]
benches/bench.rs::benches::bench_pack::pack::pack_to[32]
CodSpeed Performance Gauge
+10%
311.9 ns
282.8 ns
pack_to[16]
benches/bench.rs::benches::bench_pack::pack::pack_to[16]
CodSpeed Performance Gauge
+10%
317.2 ns
288.1 ns
push[8]
benches/bench.rs::benches::bench_push::push[8]
CodSpeed Performance Gauge
+10%
288.3 ns
261.9 ns

Passed

clear[16]
benches/bench.rs::benches::bench_clear::clear[16]
CodSpeed Performance Gauge
N/A
< 1 ns
< 1 ns
clear[32]
benches/bench.rs::benches::bench_clear::clear[32]
CodSpeed Performance Gauge
N/A
< 1 ns
< 1 ns
clear[64]
benches/bench.rs::benches::bench_clear::clear[64]
CodSpeed Performance Gauge
N/A
< 1 ns
< 1 ns
clear[8]
benches/bench.rs::benches::bench_clear::clear[8]
CodSpeed Performance Gauge
N/A
< 1 ns
< 1 ns
clone[16]
benches/bench.rs::benches::bench_clone::clone[16]
CodSpeed Performance Gauge
N/A
< 1 ns
< 1 ns
clone[32]
benches/bench.rs::benches::bench_clone::clone[32]
CodSpeed Performance Gauge
N/A
< 1 ns
< 1 ns
clone[64]
benches/bench.rs::benches::bench_clone::clone[64]
CodSpeed Performance Gauge
N/A
< 1 ns
< 1 ns
clone[8]
benches/bench.rs::benches::bench_clone::clone[8]
CodSpeed Performance Gauge
N/A
< 1 ns
< 1 ns
push[64]
benches/bench.rs::benches::bench_push::push[64]
CodSpeed Performance Gauge
+10%
690.8 ns
629.7 ns
unpack[16]
benches/bench.rs::benches::bench_unpack::unpack[16]
CodSpeed Performance Gauge
+10%
332.5 ns
303.3 ns
set_at[16]
benches/bench.rs::benches::bench_set_at::set_at[16]
CodSpeed Performance Gauge
+10%
335.3 ns
306.1 ns
unpack[32]
benches/bench.rs::benches::bench_unpack::unpack[32]
CodSpeed Performance Gauge
+9%
336.4 ns
307.2 ns
push[16]
benches/bench.rs::benches::bench_push::push[16]
CodSpeed Performance Gauge
+9%
341.7 ns
312.5 ns
ends_with[64]
benches/bench.rs::benches::bench_ends_with::ends_with[64]
CodSpeed Performance Gauge
+8%
402.2 ns
371.4 ns
join[32]
benches/bench.rs::benches::bench_join::join[32]
CodSpeed Performance Gauge
+8%
380.6 ns
351.4 ns
join[16]
benches/bench.rs::benches::bench_join::join[16]
CodSpeed Performance Gauge
+8%
413.9 ns
384.7 ns
join[8]
benches/bench.rs::benches::bench_join::join[8]
CodSpeed Performance Gauge
+8%
416.7 ns
387.5 ns
push[32]
benches/bench.rs::benches::bench_push::push[32]
CodSpeed Performance Gauge
+7%
445.6 ns
416.4 ns
set_at[32]
benches/bench.rs::benches::bench_set_at::set_at[32]
CodSpeed Performance Gauge
+7%
461.9 ns
432.8 ns
middle[64]
benches/bench.rs::benches::bench_slice::slice::middle[64]
CodSpeed Performance Gauge
+6%
538.3 ns
509.2 ns
middle[16]
benches/bench.rs::benches::bench_slice::slice::middle[16]
CodSpeed Performance Gauge
+6%
543.1 ns
513.9 ns
middle[32]
benches/bench.rs::benches::bench_slice::slice::middle[32]
CodSpeed Performance Gauge
+6%
543.1 ns
513.9 ns
middle[8]
benches/bench.rs::benches::bench_slice::slice::middle[8]
CodSpeed Performance Gauge
+6%
543.1 ns
513.9 ns
set_at[64]
benches/bench.rs::benches::bench_set_at::set_at[64]
CodSpeed Performance Gauge
+4%
715.3 ns
686.1 ns
naive[64]
benches/bench.rs::benches::nibbles_benchmark::pack::naive[64]
CodSpeed Performance Gauge
+2%
1.8 µs
1.7 µs
from_nibbles[32]
benches/bench.rs::benches::bench_from_nibbles::from_nibbles[32]
CodSpeed Performance Gauge
0%
507.8 ns
505.3 ns
cmp[16]
benches/bench.rs::benches::bench_cmp::cmp[16]
CodSpeed Performance Gauge
0%
215.6 ns
215.6 ns
cmp[32]
benches/bench.rs::benches::bench_cmp::cmp[32]
CodSpeed Performance Gauge
0%
215.6 ns
215.6 ns
cmp[64]
benches/bench.rs::benches::bench_cmp::cmp[64]
CodSpeed Performance Gauge
0%
215.6 ns
215.6 ns
cmp[8]
benches/bench.rs::benches::bench_cmp::cmp[8]
CodSpeed Performance Gauge
0%
215.6 ns
215.6 ns
common_prefix_length[16]
benches/bench.rs::benches::bench_common_prefix_length::common_prefix_length[16]
CodSpeed Performance Gauge
0%
213.6 ns
213.6 ns
common_prefix_length[8]
benches/bench.rs::benches::bench_common_prefix_length::common_prefix_length[8]
CodSpeed Performance Gauge
0%
213.6 ns
213.6 ns
from_nibbles[8]
benches/bench.rs::benches::bench_from_nibbles::from_nibbles[8]
CodSpeed Performance Gauge
0%
323.6 ns
323.6 ns
get_byte[16]
benches/bench.rs::benches::bench_get_byte::get_byte::get_byte[16]
CodSpeed Performance Gauge
0%
436.4 ns
436.4 ns
get_byte[32]
benches/bench.rs::benches::bench_get_byte::get_byte::get_byte[32]
CodSpeed Performance Gauge
0%
620.8 ns
620.8 ns
get_byte[64]
benches/bench.rs::benches::bench_get_byte::get_byte::get_byte[64]
CodSpeed Performance Gauge
0%
989.7 ns
989.7 ns
get_byte[8]
benches/bench.rs::benches::bench_get_byte::get_byte::get_byte[8]
CodSpeed Performance Gauge
0%
344.2 ns
344.2 ns
get_byte_unchecked[64]
benches/bench.rs::benches::bench_get_byte::get_byte::get_byte_unchecked[64]
CodSpeed Performance Gauge
0%
612.5 ns
612.5 ns
last[64]
benches/bench.rs::benches::bench_last::last[64]
CodSpeed Performance Gauge
0%
123.1 ns
123.1 ns
naive[32]
benches/bench.rs::benches::nibbles_benchmark::pack::naive[32]
CodSpeed Performance Gauge
0%
1.7 µs
1.7 µs
naive[4]
benches/bench.rs::benches::nibbles_benchmark::unpack::naive[4]
CodSpeed Performance Gauge
0%
1.6 µs
1.6 µs
naive[8]
benches/bench.rs::benches::nibbles_benchmark::unpack::naive[8]
CodSpeed Performance Gauge
0%
1.6 µs
1.6 µs
from_nibbles[64]
benches/bench.rs::benches::bench_from_nibbles::from_nibbles[64]
CodSpeed Performance Gauge
0%
711.1 ns
713.6 ns
from_nibbles[16]
benches/bench.rs::benches::bench_from_nibbles::from_nibbles[16]
CodSpeed Performance Gauge
-1%
371.9 ns
374.4 ns
pop[64]
benches/bench.rs::benches::bench_pop::pop[64]
CodSpeed Performance Gauge
-1%
1.9 µs
2 µs
naive[32]
benches/bench.rs::benches::nibbles_benchmark::unpack::naive[32]
CodSpeed Performance Gauge
-2%
1.8 µs
1.8 µs
naive[16]
benches/bench.rs::benches::nibbles_benchmark::unpack::naive[16]
CodSpeed Performance Gauge
-2%
1.6 µs
1.7 µs
naive[16]
benches/bench.rs::benches::nibbles_benchmark::pack::naive[16]
CodSpeed Performance Gauge
-2%
1.6 µs
1.6 µs
naive[8]
benches/bench.rs::benches::nibbles_benchmark::pack::naive[8]
CodSpeed Performance Gauge
-2%
1.6 µs
1.6 µs
pop[32]
benches/bench.rs::benches::bench_pop::pop[32]
CodSpeed Performance Gauge
-3%
1 µs
1.1 µs
pop[16]
benches/bench.rs::benches::bench_pop::pop[16]
CodSpeed Performance Gauge
-4%
623.1 ns
652.2 ns
pop[8]
benches/bench.rs::benches::bench_pop::pop[8]
CodSpeed Performance Gauge
-6%
474.2 ns
503.3 ns
ends_with[32]
benches/bench.rs::benches::bench_ends_with::ends_with[32]
CodSpeed Performance Gauge
-7%
345 ns
371.4 ns
get_byte_unchecked[32]
benches/bench.rs::benches::bench_get_byte::get_byte::get_byte_unchecked[32]
CodSpeed Performance Gauge
-7%
361.1 ns
390.3 ns
common_prefix_length[32]
benches/bench.rs::benches::bench_common_prefix_length::common_prefix_length[32]
CodSpeed Performance Gauge
-9%
308.1 ns
337.2 ns
common_prefix_length[64]
benches/bench.rs::benches::bench_common_prefix_length::common_prefix_length[64]
CodSpeed Performance Gauge
-9%
308.1 ns
337.2 ns
starts_with[16]
benches/bench.rs::benches::bench_starts_with::starts_with[16]
CodSpeed Performance Gauge
-10%
276.4 ns
305.6 ns
starts_with[32]
benches/bench.rs::benches::bench_starts_with::starts_with[32]
CodSpeed Performance Gauge
-10%
276.4 ns
305.6 ns
starts_with[64]
benches/bench.rs::benches::bench_starts_with::starts_with[64]
CodSpeed Performance Gauge
-10%
276.4 ns
305.6 ns
starts_with[8]
benches/bench.rs::benches::bench_starts_with::starts_with[8]
CodSpeed Performance Gauge
-10%
276.4 ns
305.6 ns

Commits

Click on a commit to change the comparison range
Base
main
7f36b9c
-21%
fix: `pack_to_unchecked` on big-endian targets
0b24fb4
10 days ago
by clabby
© 2025 CodSpeed Technology
Home Terms Privacy Docs