对比 rust 几种数据结构占用内存和插入速度,插入一亿条数据。

原创
2020/06/22 13:07
阅读数 429

硬件: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();
}
展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部