about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorkennytm <kennytm@gmail.com>2018-07-17 02:19:02 +0800
committerkennytm <kennytm@gmail.com>2018-07-17 19:24:48 +0800
commit6af3e2d707230cf4d0879dc81ceccc83e72fed25 (patch)
tree98666e4f610e27864f139f321b57b89ba658b497 /src
parent2d1880893fca2d24344519a08cc00535f6b52530 (diff)
parentd85bcef4670ca816e04467bd287e58460c34750e (diff)
downloadrust-6af3e2d707230cf4d0879dc81ceccc83e72fed25.tar.gz
rust-6af3e2d707230cf4d0879dc81ceccc83e72fed25.zip
Rollup merge of #52435 - ljedrz:misc_capacity, r=estebank
Calculate the exact capacity for 2 HashMaps
Diffstat (limited to 'src')
-rw-r--r--src/bootstrap/metadata.rs2
-rw-r--r--src/librustc_driver/profile/trace.rs3
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<String,QueryMetr
 }
 
 pub fn write_traces(html_file: &mut File, counts_file: &mut File, traces: &Vec<Rec>) {
-    let mut counts : HashMap<String,QueryMetric> = HashMap::new();
+    let capacity = traces.iter().fold(0, |acc, t| acc + 1 + t.extent.len());
+    let mut counts : HashMap<String, QueryMetric> = HashMap::with_capacity(capacity);
     compute_counts_rec(&mut counts, traces);
     write_counts(counts_file, &mut counts);