From a41cc02014c9c931de36bfbf00810be82eaa2b6a Mon Sep 17 00:00:00 2001 From: Omer Ben-Amram Date: Fri, 31 May 2019 15:39:44 +0300 Subject: change benchmark --- src/benches/benchmark.rs | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/benches/benchmark.rs b/src/benches/benchmark.rs index 2ce0e08..79695f0 100644 --- a/src/benches/benchmark.rs +++ b/src/benches/benchmark.rs @@ -3,7 +3,7 @@ extern crate criterion; extern crate mft; use criterion::Criterion; -use mft::{MftEntry, MftParser}; +use mft::{MftEntry, MftParser, ReadSeek}; fn process_1000_mft_records(sample: &[u8]) { let mut parser = MftParser::from_buffer(sample.to_vec()).unwrap(); @@ -16,15 +16,8 @@ fn process_1000_mft_records(sample: &[u8]) { } } -fn get_full_path(sample: &[u8]) { - let mut parser = MftParser::from_buffer(sample.to_vec()).unwrap(); - - let mut paths = Vec::with_capacity(100); - let entries: Vec = parser - .iter_entries() - .take(100) - .filter_map(Result::ok) - .collect(); +fn get_full_path(parser: &mut MftParser, entries: &[MftEntry]) { + let mut paths = Vec::with_capacity(10000); for entry in entries { paths.push(parser.get_full_path_for_entry(&entry)); @@ -39,7 +32,17 @@ fn criterion_benchmark(c: &mut Criterion) { b.iter(|| process_1000_mft_records(sample)) }); - c.bench_function("get_full_path", move |b| b.iter(|| get_full_path(sample))); + c.bench_function("get_full_path", move |b| { + let mut parser = MftParser::from_buffer(sample.to_vec()).unwrap(); + + let entries: Vec = parser + .iter_entries() + .take(10000) + .filter_map(Result::ok) + .collect(); + + b.iter(|| get_full_path(&mut parser, &entries)) + }); } criterion_group!(benches, criterion_benchmark); -- cgit v1.2.3