硬件:mbp 2019
编译参数:cargo run --release
插入 i32 条数: 100,000,000
结论
HashMap<i32,i32> 1.3G, 13s
BTreeMap<i32,i32> 1.98G, 10s
HashSet<i32> 650M, 13s
Vec<i32> 381M, 0.27s
可以看出,Vec<i32> 没有额外的消耗,HashSet, HashMap, BTreeMap 额外消耗也很小。
代码
use std::convert::TryInto;
use std::collections::{HashMap, BTreeMap, HashSet};
fn main() {
// let mut a = HashMap::new(); // 1.3G, 13s
// let mut a = BTreeMap::new(); // 1.98G, 10s
// let mut a = HashSet::new(); // 650M, 13s
let mut a = Vec::new(); // 381M, 0.27s
// 1亿 条
let start = std::time::Instant::now();
for i in 0..100_000_000 {
a.insert(i);
// a.insert(i, i);
}
println!("time: {}", start.elapsed().as_millis());
std::thread::park();
}
来源:oschina
链接:https://my.oschina.net/ooxxx/blog/4319349