From 52c72a3b1d61b9cffccdd79451c9c8773dca1721 Mon Sep 17 00:00:00 2001 From: nk_ysg Date: Sun, 22 Sep 2024 23:26:54 +0800 Subject: [PATCH] use HashMap::with_capacity (#11106) --- crates/blockchain-tree/src/blockchain_tree.rs | 3 ++- crates/engine/tree/src/tree/mod.rs | 7 ++++--- crates/optimism/evm/src/execute.rs | 2 +- crates/storage/provider/src/providers/database/provider.rs | 3 ++- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/crates/blockchain-tree/src/blockchain_tree.rs b/crates/blockchain-tree/src/blockchain_tree.rs index 71fb4314bc..5cb22e317e 100644 --- a/crates/blockchain-tree/src/blockchain_tree.rs +++ b/crates/blockchain-tree/src/blockchain_tree.rs @@ -1505,7 +1505,8 @@ mod tests { assert_eq!(*tree.state.block_indices.blocks_to_chain(), block_to_chain); } if let Some(fork_to_child) = self.fork_to_child { - let mut x: HashMap> = HashMap::new(); + let mut x: HashMap> = + HashMap::with_capacity(fork_to_child.len()); for (key, hash_set) in fork_to_child { x.insert(key, hash_set.into_iter().collect()); } diff --git a/crates/engine/tree/src/tree/mod.rs b/crates/engine/tree/src/tree/mod.rs index 29fd18e60d..3aff602e76 100644 --- a/crates/engine/tree/src/tree/mod.rs +++ b/crates/engine/tree/src/tree/mod.rs @@ -2736,11 +2736,12 @@ mod tests { } fn with_blocks(mut self, blocks: Vec) -> Self { - let mut blocks_by_hash = HashMap::new(); + let mut blocks_by_hash = HashMap::with_capacity(blocks.len()); let mut blocks_by_number = BTreeMap::new(); - let mut state_by_hash = HashMap::new(); + let mut state_by_hash = HashMap::with_capacity(blocks.len()); let mut hash_by_number = BTreeMap::new(); - let mut parent_to_child: HashMap> = HashMap::new(); + let mut parent_to_child: HashMap> = + HashMap::with_capacity(blocks.len()); let mut parent_hash = B256::ZERO; for block in &blocks { diff --git a/crates/optimism/evm/src/execute.rs b/crates/optimism/evm/src/execute.rs index 20cae99ad3..08ec7e7346 100644 --- a/crates/optimism/evm/src/execute.rs +++ b/crates/optimism/evm/src/execute.rs @@ -544,7 +544,7 @@ mod tests { let l1_block_contract_account = Account { balance: U256::ZERO, bytecode_hash: None, nonce: 1 }; - let mut l1_block_storage = HashMap::new(); + let mut l1_block_storage = HashMap::with_capacity(4); // base fee l1_block_storage.insert(StorageKey::with_last_byte(1), StorageValue::from(1000000000)); // l1 fee overhead diff --git a/crates/storage/provider/src/providers/database/provider.rs b/crates/storage/provider/src/providers/database/provider.rs index de6d65ad4d..92cb9b9507 100644 --- a/crates/storage/provider/src/providers/database/provider.rs +++ b/crates/storage/provider/src/providers/database/provider.rs @@ -2844,7 +2844,8 @@ impl HashingWriter for DatabaseProvider> = HashMap::new(); + let mut hashed_storage_keys: HashMap> = + HashMap::with_capacity(hashed_storages.len()); let mut hashed_storage = self.tx.cursor_dup_write::()?; for (hashed_address, key, value) in hashed_storages.into_iter().rev() { hashed_storage_keys.entry(hashed_address).or_default().insert(key);