Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/windirstat/mft.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOmer Ben-Amram <omerbenamram@gmail.com>2019-05-31 15:39:44 +0300
committerOmer Ben-Amram <omerbenamram@gmail.com>2019-05-31 15:39:44 +0300
commita41cc02014c9c931de36bfbf00810be82eaa2b6a (patch)
tree1332029618b4f7caab3291a824c5c48b1e69561d
parent96b0498140c9da73ae9649bba458115f72873905 (diff)
change benchmark
-rw-r--r--src/benches/benchmark.rs25
1 files 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<MftEntry> = parser
- .iter_entries()
- .take(100)
- .filter_map(Result::ok)
- .collect();
+fn get_full_path(parser: &mut MftParser<impl ReadSeek>, 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<MftEntry> = parser
+ .iter_entries()
+ .take(10000)
+ .filter_map(Result::ok)
+ .collect();
+
+ b.iter(|| get_full_path(&mut parser, &entries))
+ });
}
criterion_group!(benches, criterion_benchmark);