Avatar for the paradigmxyz user
paradigmxyz
reth
BlogDocsChangelog

feat: Make DatabaseStateRoot stateful

#15760
Comparing
iTranscend:feat/make-database-state-root-stateful
(
c5e7fa8
) with
main
(
82d6505
)
CodSpeed Performance Gauge
+12%
Improvements
1
Regressions
0
Untouched
76
New
0
Dropped
0
Ignored
0

Benchmarks

Improved

hash builder[init size 10000 | update size 100 | num updates 1]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::hash builder[init size 10000 | update size 100 | num updates 1]
CodSpeed Performance Gauge
+12%
10.2 ms
9.1 ms

Passed

hash builder[init size 10000 | update size 100 | num updates 3]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::hash builder[init size 10000 | update size 100 | num updates 3]
CodSpeed Performance Gauge
+10%
28.8 ms
26.2 ms
hash builder[init size 10000 | update size 100 | num updates 5]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::hash builder[init size 10000 | update size 100 | num updates 5]
CodSpeed Performance Gauge
+2%
46.5 ms
45.4 ms
hash builder[init size 10000 | update size 1000 | num updates 3]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::hash builder[init size 10000 | update size 1000 | num updates 3]
CodSpeed Performance Gauge
+1%
77.1 ms
76.6 ms
hash builder[init size 1000 | update size 100 | num updates 3]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::hash builder[init size 1000 | update size 100 | num updates 3]
CodSpeed Performance Gauge
+1%
7.6 ms
7.5 ms
hash builder[init size 10000 | update size 1000 | num updates 10]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::hash builder[init size 10000 | update size 1000 | num updates 10]
CodSpeed Performance Gauge
+1%
253.7 ms
252.2 ms
hash builder[init size 1000 | update size 1000 | num updates 3]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::hash builder[init size 1000 | update size 1000 | num updates 3]
CodSpeed Performance Gauge
0%
17.3 ms
17.2 ms
sparse trie[init size 1000 | update size 100 | num updates 1]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::sparse trie[init size 1000 | update size 100 | num updates 1]
CodSpeed Performance Gauge
0%
1.3 ms
1.3 ms
hash builder[init size 1000 | update size 1000 | num updates 5]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::hash builder[init size 1000 | update size 1000 | num updates 5]
CodSpeed Performance Gauge
0%
28.7 ms
28.7 ms
hash builder[init size 10000 | update size 1000 | num updates 1]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::hash builder[init size 10000 | update size 1000 | num updates 1]
CodSpeed Performance Gauge
0%
26.2 ms
26.1 ms
prefix set | size: 100 | `Vec` with custom cursor lookup
crates/trie/common/benches/prefix_set.rs::prefix_set::prefix_set_lookups::Prefix Set Lookups::prefix set | size: 100 | `Vec` with custom cursor lookup
CodSpeed Performance Gauge
0%
24.4 µs
24.4 µs
hash builder[init size 1000 | update size 100 | num updates 5]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::hash builder[init size 1000 | update size 100 | num updates 5]
CodSpeed Performance Gauge
0%
12.6 ms
12.6 ms
hash builder[init size 1000 | update size 1000 | num updates 1]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::hash builder[init size 1000 | update size 1000 | num updates 1]
CodSpeed Performance Gauge
0%
5.8 ms
5.8 ms
prefix set | size: 100 | `BTreeSet` with `Iterator:any` lookup
crates/trie/common/benches/prefix_set.rs::prefix_set::prefix_set_lookups::Prefix Set Lookups::prefix set | size: 100 | `BTreeSet` with `Iterator:any` lookup
CodSpeed Performance Gauge
0%
198.9 µs
198.6 µs
sparse trie[init size 1000 | update size 100 | num updates 3]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::sparse trie[init size 1000 | update size 100 | num updates 3]
CodSpeed Performance Gauge
0%
3.7 ms
3.7 ms
sparse trie[init size 10000 | update size 100 | num updates 1]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::sparse trie[init size 10000 | update size 100 | num updates 1]
CodSpeed Performance Gauge
0%
2.7 ms
2.7 ms
sparse trie[1000]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves::calculate root from leaves::sparse trie[1000]
CodSpeed Performance Gauge
0%
6.4 ms
6.4 ms
sequence hashing[100]
crates/trie/trie/benches/hash_post_state.rs::post_state::hash_post_state::Hash Post State::sequence hashing[100]
CodSpeed Performance Gauge
0%
259 ms
258.7 ms
parallel hashing[100]
crates/trie/trie/benches/hash_post_state.rs::post_state::hash_post_state::Hash Post State::parallel hashing[100]
CodSpeed Performance Gauge
0%
259 ms
258.8 ms
sparse trie[init size 10000 | update size 100 | num updates 5]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::sparse trie[init size 10000 | update size 100 | num updates 5]
CodSpeed Performance Gauge
0%
12.5 ms
12.5 ms
validate_blob | num blobs: 3 | ValidateBlob
crates/primitives/benches/validate_blob_tx.rs::validate_blob::blob_validation::Blob Transaction KZG validation::validate_blob | num blobs: 3 | ValidateBlob
CodSpeed Performance Gauge
0%
150.8 µs
150.7 µs
prefix set | size: 100 | `Vec` with binary search lookup
crates/trie/common/benches/prefix_set.rs::prefix_set::prefix_set_lookups::Prefix Set Lookups::prefix set | size: 100 | `Vec` with binary search lookup
CodSpeed Performance Gauge
0%
29.1 µs
29.1 µs
prefix set | size: 100 | `BTreeSet` with `BTreeSet:range` lookup
crates/trie/common/benches/prefix_set.rs::prefix_set::prefix_set_lookups::Prefix Set Lookups::prefix set | size: 100 | `BTreeSet` with `BTreeSet:range` lookup
CodSpeed Performance Gauge
0%
53.7 µs
53.7 µs
prefix set | size: 1000 | `Vec` with binary search lookup
crates/trie/common/benches/prefix_set.rs::prefix_set::prefix_set_lookups::Prefix Set Lookups::prefix set | size: 1000 | `Vec` with binary search lookup
CodSpeed Performance Gauge
0%
294.1 µs
293.9 µs
sparse trie[init size 1000 | update size 100 | num updates 5]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::sparse trie[init size 1000 | update size 100 | num updates 5]
CodSpeed Performance Gauge
0%
6 ms
6 ms
validate_blob | num blobs: 6 | ValidateBlob
crates/primitives/benches/validate_blob_tx.rs::validate_blob::blob_validation::Blob Transaction KZG validation::validate_blob | num blobs: 6 | ValidateBlob
CodSpeed Performance Gauge
0%
154.8 µs
154.8 µs
prefix set | size: 1000 | `BTreeSet` with `Iterator:any` lookup
crates/trie/common/benches/prefix_set.rs::prefix_set::prefix_set_lookups::Prefix Set Lookups::prefix set | size: 1000 | `BTreeSet` with `Iterator:any` lookup
CodSpeed Performance Gauge
0%
19.8 ms
19.8 ms
sparse trie[init size 10000 | update size 100 | num updates 3]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::sparse trie[init size 10000 | update size 100 | num updates 3]
CodSpeed Performance Gauge
0%
7.6 ms
7.6 ms
sparse trie[init size 10000 | update size 1000 | num updates 10]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::sparse trie[init size 10000 | update size 1000 | num updates 10]
CodSpeed Performance Gauge
0%
120.7 ms
120.6 ms
validate_blob | num blobs: 1 | ValidateBlob
crates/primitives/benches/validate_blob_tx.rs::validate_blob::blob_validation::Blob Transaction KZG validation::validate_blob | num blobs: 1 | ValidateBlob
CodSpeed Performance Gauge
0%
149.2 µs
149.1 µs
validate_blob | num blobs: 2 | ValidateBlob
crates/primitives/benches/validate_blob_tx.rs::validate_blob::blob_validation::Blob Transaction KZG validation::validate_blob | num blobs: 2 | ValidateBlob
CodSpeed Performance Gauge
0%
149.6 µs
149.5 µs
validate_blob | num blobs: 4 | ValidateBlob
crates/primitives/benches/validate_blob_tx.rs::validate_blob::blob_validation::Blob Transaction KZG validation::validate_blob | num blobs: 4 | ValidateBlob
CodSpeed Performance Gauge
0%
151.9 µs
151.9 µs
prefix set | size: 1000 | `BTreeSet` with `BTreeSet:range` lookup
crates/trie/common/benches/prefix_set.rs::prefix_set::prefix_set_lookups::Prefix Set Lookups::prefix set | size: 1000 | `BTreeSet` with `BTreeSet:range` lookup
CodSpeed Performance Gauge
0%
599.2 µs
599 µs
sparse trie[init size 1000 | update size 100 | num updates 10]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::sparse trie[init size 1000 | update size 100 | num updates 10]
CodSpeed Performance Gauge
0%
12 ms
12 ms
hash builder[init size 1000 | update size 1000 | num updates 10]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::hash builder[init size 1000 | update size 1000 | num updates 10]
CodSpeed Performance Gauge
0%
57.2 ms
57.2 ms
sparse trie[init size 10000 | update size 100 | num updates 10]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::sparse trie[init size 10000 | update size 100 | num updates 10]
CodSpeed Performance Gauge
0%
24.7 ms
24.7 ms
ordered_trie_root
crates/trie/trie/benches/trie_root.rs::benches::trie_root_benchmark::Receipts root calculation::receipts root | size: 10 | triehash::ordered_trie_root
CodSpeed Performance Gauge
0%
136.9 µs
136.8 µs
recover ECDSA
crates/primitives/benches/recover_ecdsa_crit.rs::benches::criterion_benchmark::recover ECDSA
CodSpeed Performance Gauge
0%
213.6 µs
213.6 µs
prefix set | size: 1000 | `Vec` with custom cursor lookup
crates/trie/common/benches/prefix_set.rs::prefix_set::prefix_set_lookups::Prefix Set Lookups::prefix set | size: 1000 | `Vec` with custom cursor lookup
CodSpeed Performance Gauge
0%
208.7 µs
208.7 µs
ordered_trie_root
crates/trie/trie/benches/trie_root.rs::benches::trie_root_benchmark::Receipts root calculation::receipts root | size: 1000 | triehash::ordered_trie_root
CodSpeed Performance Gauge
0%
11.9 ms
11.9 ms
ordered_trie_root
crates/trie/trie/benches/trie_root.rs::benches::trie_root_benchmark::Receipts root calculation::receipts root | size: 100 | triehash::ordered_trie_root
CodSpeed Performance Gauge
0%
1.2 ms
1.2 ms
receipts root | size: 1000 | HashBuilder
crates/trie/trie/benches/trie_root.rs::benches::trie_root_benchmark::Receipts root calculation::receipts root | size: 1000 | HashBuilder
CodSpeed Performance Gauge
0%
9.3 ms
9.3 ms
sequence hashing[1000]
crates/trie/trie/benches/hash_post_state.rs::post_state::hash_post_state::Hash Post State::sequence hashing[1000]
CodSpeed Performance Gauge
0%
2.6 s
2.6 s
prefix set | size: 10 | `BTreeSet` with `Iterator:any` lookup
crates/trie/common/benches/prefix_set.rs::prefix_set::prefix_set_lookups::Prefix Set Lookups::prefix set | size: 10 | `BTreeSet` with `Iterator:any` lookup
CodSpeed Performance Gauge
0%
5.2 µs
5.2 µs
prefix set | size: 10 | `Vec` with custom cursor lookup
crates/trie/common/benches/prefix_set.rs::prefix_set::prefix_set_lookups::Prefix Set Lookups::prefix set | size: 10 | `Vec` with custom cursor lookup
CodSpeed Performance Gauge
0%
4.5 µs
4.5 µs
receipts root | size: 10 | HashBuilder
crates/trie/trie/benches/trie_root.rs::benches::trie_root_benchmark::Receipts root calculation::receipts root | size: 10 | HashBuilder
CodSpeed Performance Gauge
0%
117.2 µs
117.2 µs
receipts root | size: 100 | HashBuilder
crates/trie/trie/benches/trie_root.rs::benches::trie_root_benchmark::Receipts root calculation::receipts root | size: 100 | HashBuilder
CodSpeed Performance Gauge
0%
944.7 µs
945 µs
sparse trie[init size 1000 | update size 1000 | num updates 10]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::sparse trie[init size 1000 | update size 1000 | num updates 10]
CodSpeed Performance Gauge
0%
54.1 ms
54.1 ms
sparse trie[init size 10000 | update size 1000 | num updates 1]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::sparse trie[init size 10000 | update size 1000 | num updates 1]
CodSpeed Performance Gauge
0%
12.7 ms
12.7 ms
sparse trie[init size 10000 | update size 1000 | num updates 5]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::sparse trie[init size 10000 | update size 1000 | num updates 5]
CodSpeed Performance Gauge
0%
60.7 ms
60.8 ms
parallel hashing[1000]
crates/trie/trie/benches/hash_post_state.rs::post_state::hash_post_state::Hash Post State::parallel hashing[1000]
CodSpeed Performance Gauge
0%
2.6 s
2.6 s
hash builder[1000]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves::calculate root from leaves::hash builder[1000]
CodSpeed Performance Gauge
0%
4.6 ms
4.6 ms
hash builder[5000]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves::calculate root from leaves::hash builder[5000]
CodSpeed Performance Gauge
0%
22.6 ms
22.6 ms
sparse trie[init size 1000 | update size 1000 | num updates 5]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::sparse trie[init size 1000 | update size 1000 | num updates 5]
CodSpeed Performance Gauge
0%
27.2 ms
27.2 ms
validate_blob | num blobs: 5 | ValidateBlob
crates/primitives/benches/validate_blob_tx.rs::validate_blob::blob_validation::Blob Transaction KZG validation::validate_blob | num blobs: 5 | ValidateBlob
CodSpeed Performance Gauge
0%
153.1 µs
153.4 µs
sparse trie[init size 1000 | update size 1000 | num updates 1]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::sparse trie[init size 1000 | update size 1000 | num updates 1]
CodSpeed Performance Gauge
0%
5.6 ms
5.6 ms
hash builder[init size 1000 | update size 100 | num updates 10]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::hash builder[init size 1000 | update size 100 | num updates 10]
CodSpeed Performance Gauge
0%
25 ms
25.1 ms
sparse trie[init size 10000 | update size 1000 | num updates 3]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::sparse trie[init size 10000 | update size 1000 | num updates 3]
CodSpeed Performance Gauge
0%
36.7 ms
36.9 ms
prefix set | size: 10 | `BTreeSet` with `BTreeSet:range` lookup
crates/trie/common/benches/prefix_set.rs::prefix_set::prefix_set_lookups::Prefix Set Lookups::prefix set | size: 10 | `BTreeSet` with `BTreeSet:range` lookup
CodSpeed Performance Gauge
0%
6.1 µs
6.1 µs
size 100000 | updated 1% | depth 4
crates/trie/sparse/benches/rlp_node.rs::rlp_node::update_rlp_node_level::update rlp node level::size 100000 | updated 1% | depth 4
CodSpeed Performance Gauge
-1%
13.1 ms
13.2 ms
sparse trie[init size 1000 | update size 1000 | num updates 3]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::sparse trie[init size 1000 | update size 1000 | num updates 3]
CodSpeed Performance Gauge
-1%
16.3 ms
16.4 ms
sparse trie[5000]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves::calculate root from leaves::sparse trie[5000]
CodSpeed Performance Gauge
-1%
31.7 ms
32 ms
hash builder[init size 10000 | update size 100 | num updates 10]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::hash builder[init size 10000 | update size 100 | num updates 10]
CodSpeed Performance Gauge
-1%
90.3 ms
91.4 ms
hash builder[init size 10000 | update size 1000 | num updates 5]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::hash builder[init size 10000 | update size 1000 | num updates 5]
CodSpeed Performance Gauge
-1%
125.8 ms
127.3 ms
size 100000 | updated 1% | depth 2
crates/trie/sparse/benches/rlp_node.rs::rlp_node::update_rlp_node_level::update rlp node level::size 100000 | updated 1% | depth 2
CodSpeed Performance Gauge
-1%
26.7 ms
27.1 ms
size 100000 | updated 1% | depth 0
crates/trie/sparse/benches/rlp_node.rs::rlp_node::update_rlp_node_level::update rlp node level::size 100000 | updated 1% | depth 0
CodSpeed Performance Gauge
-1%
26.8 ms
27.2 ms
size 100000 | updated 1% | depth 1
crates/trie/sparse/benches/rlp_node.rs::rlp_node::update_rlp_node_level::update rlp node level::size 100000 | updated 1% | depth 1
CodSpeed Performance Gauge
-1%
26.8 ms
27.2 ms
size 100000 | updated 1% | depth 3
crates/trie/sparse/benches/rlp_node.rs::rlp_node::update_rlp_node_level::update rlp node level::size 100000 | updated 1% | depth 3
CodSpeed Performance Gauge
-1%
23.7 ms
24.1 ms
prefix set | size: 10 | `Vec` with binary search lookup
crates/trie/common/benches/prefix_set.rs::prefix_set::prefix_set_lookups::Prefix Set Lookups::prefix set | size: 10 | `Vec` with binary search lookup
CodSpeed Performance Gauge
-1%
4.7 µs
4.7 µs
size 100000 | updated 1% | depth 5
crates/trie/sparse/benches/rlp_node.rs::rlp_node::update_rlp_node_level::update rlp node level::size 100000 | updated 1% | depth 5
CodSpeed Performance Gauge
-1%
10.1 ms
10.3 ms
size 100000 | updated 0.1% | depth 3
crates/trie/sparse/benches/rlp_node.rs::rlp_node::update_rlp_node_level::update rlp node level::size 100000 | updated 0.1% | depth 3
CodSpeed Performance Gauge
-2%
2.7 ms
2.8 ms
hash builder[init size 1000 | update size 100 | num updates 1]
crates/trie/sparse/benches/root.rs::root::calculate_root_from_leaves_repeated::calculate root from leaves repeated::hash builder[init size 1000 | update size 100 | num updates 1]
CodSpeed Performance Gauge
-3%
2.5 ms
2.6 ms
size 100000 | updated 0.1% | depth 0
crates/trie/sparse/benches/rlp_node.rs::rlp_node::update_rlp_node_level::update rlp node level::size 100000 | updated 0.1% | depth 0
CodSpeed Performance Gauge
-4%
3.9 ms
4.1 ms
size 100000 | updated 0.1% | depth 1
crates/trie/sparse/benches/rlp_node.rs::rlp_node::update_rlp_node_level::update rlp node level::size 100000 | updated 0.1% | depth 1
CodSpeed Performance Gauge
-4%
3.9 ms
4.1 ms
size 100000 | updated 0.1% | depth 4
crates/trie/sparse/benches/rlp_node.rs::rlp_node::update_rlp_node_level::update rlp node level::size 100000 | updated 0.1% | depth 4
CodSpeed Performance Gauge
-4%
1.6 ms
1.7 ms
size 100000 | updated 0.1% | depth 2
crates/trie/sparse/benches/rlp_node.rs::rlp_node::update_rlp_node_level::update rlp node level::size 100000 | updated 0.1% | depth 2
CodSpeed Performance Gauge
-4%
3.7 ms
3.9 ms
size 100000 | updated 0.1% | depth 5
crates/trie/sparse/benches/rlp_node.rs::rlp_node::update_rlp_node_level::update rlp node level::size 100000 | updated 0.1% | depth 5
CodSpeed Performance Gauge
-8%
1.3 ms
1.4 ms

Commits

Click on a commit to change the comparison range
Base
main
82d6505
0%
feat: make DatabaseStateRoot stateful
1876b18
30 days ago
by iTranscend
0%
doc(test): update trie db overlay_root() usage docs
5852996
30 days ago
by iTranscend
+12%
style: grammar fix
c5e7fa8
20 days ago
by iTranscend
© 2025 CodSpeed Technology
Home Terms PrivacyDocs