From d85bcef4670ca816e04467bd287e58460c34750e Mon Sep 17 00:00:00 2001 From: ljedrz Date: Mon, 16 Jul 2018 16:01:29 +0200 Subject: [PATCH] Calculate the exact capacity for 2 HashMaps --- src/bootstrap/metadata.rs | 2 +- src/librustc_driver/profile/trace.rs | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/bootstrap/metadata.rs b/src/bootstrap/metadata.rs index 718a6da3637..fa0b1983510 100644 --- a/src/bootstrap/metadata.rs +++ b/src/bootstrap/metadata.rs @@ -51,7 +51,7 @@ pub fn build(build: &mut Build) { build_krate("", build, &mut resolves, "src/libtest"); build_krate(&build.rustc_features(), build, &mut resolves, "src/rustc"); - let mut id2name = HashMap::new(); + let mut id2name = HashMap::with_capacity(build.crates.len()); for (name, krate) in build.crates.iter() { id2name.insert(krate.id.clone(), name.clone()); } diff --git a/src/librustc_driver/profile/trace.rs b/src/librustc_driver/profile/trace.rs index 6426286ccbc..5f10c56e8e2 100644 --- a/src/librustc_driver/profile/trace.rs +++ b/src/librustc_driver/profile/trace.rs @@ -220,7 +220,8 @@ pub fn write_counts(count_file: &mut File, counts: &mut HashMap) { - let mut counts : HashMap = HashMap::new(); + let capacity = traces.iter().fold(0, |acc, t| acc + 1 + t.extent.len()); + let mut counts : HashMap = HashMap::with_capacity(capacity); compute_counts_rec(&mut counts, traces); write_counts(counts_file, &mut counts); -- 2.44.0