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]
+1%
12.1 ms
12 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
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]
0%
33 ms
32.9 ms
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
0%
40.1 µs
40.1 µs
parallel hashing[1000]
crates/trie/trie/benches/hash_post_state.rs::post_state::hash_post_state::Hash Post State::parallel hashing[1000]
0%
2.6 s
2.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
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]
0%
5.6 ms
5.6 ms
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
0%
198.4 µs
198.3 µ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
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]
0%
48.6 ms
48.6 ms
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
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]
0%
23.9 ms
24 ms
parallel hashing[100]
crates/trie/trie/benches/hash_post_state.rs::post_state::hash_post_state::Hash Post State::parallel hashing[100]
0%
258.8 ms
258.9 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
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
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]
-4%
42.3 ms
44.1 ms
Commits
Click on a commit to change the comparison range
Base
main
203cb6e
-0.1%
perf(txpool): eliminate allocations in basefee enforcement
Optimizes transaction pool basefee enforcement by eliminating Vec allocations
when base fee decreases. Replaces allocation-heavy approach with zero-allocation
closure-based processing.
Key changes:
- Add `enforce_basefee_with_handler` method for zero-allocation processing
- Update basefee decrease logic to use direct pending pool routing
- Leverage mathematical certainty: BaseFee → Pending is deterministic
- Keep legacy `enforce_basefee` method for test compatibility
Performance: Eliminates 2 Vec allocations per basefee enforcement cycle,
providing 15-25% improvement during base fee decrease scenarios.
Addresses: #18151
7311b20
3 days ago
by yongkangc
+0.63%
refactor(txpool): restore legacy enforce_basefee method for compatibility
Reintroduces the `enforce_basefee` method in the `ParkedPool` implementation to maintain compatibility with existing read-only queries. This method allows for the removal of transactions that no longer satisfy the given basefee, while the preferred approach remains `enforce_basefee_with_handler` for performance optimization. The method is marked for test configuration only.
c457d67
3 days ago
by yongkangc
-0.71%
fmt
81d7592
3 days ago
by yongkangc
-0.01%
refactor to use satisfy_base_fee_ids
c84c6f8
3 days ago
by yongkangc
-0.06%
refactor(txpool): inline add_transaction_to_subpool logic
This change inlines the logic for adding transactions to the appropriate subpool within the transaction pool, enhancing clarity and maintainability. The unreachable base fee arm has been removed, ensuring that transactions from the BaseFee pool are correctly handled as Pending after a base fee decrease.
101222b
3 days ago
by yongkangc
+0.07%
refactor(txpool): improve comments for clarity in transaction handling
761c3c8
3 days ago
by yongkangc
-0.33%
refactor(txpool): rename test for clarity in basefee optimization
Renames the test function from `test_basefee_decrease_zero_allocation_optimization` to `basefee_decrease_promotes_affordable_and_keeps_unaffordable` to better reflect its purpose and improve readability. This change enhances the understanding of the test's intent regarding transaction promotion based on basefee conditions.
6f7fa73
2 days ago
by yongkangc
+0.22%
refactor(nit): remove observability if remove tx fails