基準測試
使用基準測試,你可以測試和測量程式碼的速度,但基準測試仍然不穩定。要在貨物專案中啟用基準測試,你需要每晚生鏽,將整合基準測試放到 Cargo 專案根目錄中的 benches/
資料夾中,然後執行 cargo bench
。
extern crate test;
extern crate rand;
use test::Bencher;
use rand::Rng;
use std::mem::replace;
#[bench]
fn empty(b: &mut Bencher) {
b.iter(|| 1)
}
#[bench]
fn setup_random_hashmap(b: &mut Bencher) {
let mut val : u32 = 0;
let mut rng = rand::IsaacRng::new_unseeded();
let mut map = std::collections::HashMap::new();
b.iter(|| { map.insert(rng.gen::<u8>() as usize, val); val += 1; })
}
#[bench]
fn setup_random_vecmap(b: &mut Bencher) {
let mut val : u32 = 0;
let mut rng = rand::IsaacRng::new_unseeded();
let mut map = std::collections::VecMap::new();
b.iter(|| { map.insert((rng.gen::<u8>()) as usize, val); val += 1; })
}
#[bench]
fn setup_random_vecmap_cap(b: &mut Bencher) {
let mut val : u32 = 0;
let mut rng = rand::IsaacRng::new_unseeded();
let mut map = std::collections::VecMap::with_capacity(256);
b.iter(|| { map.insert((rng.gen::<u8>()) as usize, val); val += 1; })
}