Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #[cfg(test)]
- mod test {
- extern crate rand;
- extern crate tempdir; // 0.3.7
- extern crate test;
- use self::test::Bencher;
- use self::rand::Rng;
- #[bench]
- fn bench_read_regular(b: &mut Bencher) {
- let mut rng = rand::thread_rng();
- let tempdir = tempdir::TempDir::new("rust-test").unwrap().into_path();
- let mut db = DB::<Array32u8>::new(tempdir.clone(), true).unwrap();
- for _ in 0.. 10000 {
- let key: [u8; 32] = rng.gen();
- let val_len: u16 = rng.gen();
- let val = iter::repeat_with(|| rng.gen()).take(val_len as usize).collect::<Vec<u8>>();
- db.create(&Array32u8(key), &val[..]).unwrap();
- }
- // let n = test::black_box(1000);
- let read_opts = ReadOptions::new();
- let mut iter = db.database.iter(read_opts);
- let mut v = Vec::<([u8;32], Vec<u8> )>::new();
- b.iter(|| {
- for (val, key) in iter {
- v.push( (val.0, key) );
- }
- });
- }
- }
- /*
- [E0507]: cannot move out of captured outer variable in an `FnMut` closure
- --> src/dal.rs:172:31
- |
- 24 | let mut iter = db.database.iter(read_opts);
- | -------- captured outer variable
- ...
- 27 | for (val, key) in iter {
- | ^^^^ cannot move out of captured outer variable in an `FnMut` closure
- */
Add Comment
Please, Sign In to add comment