diff --git a/app/benches/db_bench.rs b/app/benches/db_bench.rs index ca0f06c..8c49a84 100644 --- a/app/benches/db_bench.rs +++ b/app/benches/db_bench.rs @@ -7,12 +7,12 @@ extern crate serde_json; extern crate tempfile; use chgk_ledb_lib::db; -use std::path::PathBuf; +use std::path::Path; use db::{Reader, Writer, WriterOpts}; use criterion::{BatchSize, Criterion}; -use tempfile::tempdir; +use tempfile::{tempdir, NamedTempFile}; use serde_derive::{Deserialize, Serialize}; @@ -37,17 +37,14 @@ struct TestData { const N: usize = 4096; fn gen_data(count: usize) -> impl Iterator { - (0..count) - .into_iter() - .map(|i| 143 + i as u64) - .map(|i| TestData { - num1: i, - num2: i * 100 ^ 0xDF0E441122334455, - test: "test ---- Test ____".repeat(123 + i as usize % 15), - }) + (0..count).map(|i| 143 + i as u64).map(|i| TestData { + num1: i, + num2: (i * 100) ^ 0xDF0E441122334455, + test: "test ---- Test ____".repeat(123 + i as usize % 15), + }) } -fn prepare_db_writer(path: &PathBuf) -> Writer { +fn prepare_db_writer>(path: P) -> Writer { let opts = WriterOpts { compress_lvl: 1, data_buf_size: 100 * 1024 * 1024, @@ -60,7 +57,9 @@ fn prepare_db_writer(path: &PathBuf) -> Writer { fn db_read(c: &mut Criterion) { let dir = tempdir().expect("tempdir"); - let tmpfile = dir.path().join("test.tmp"); + let tmpfile = NamedTempFile::new_in(dir.path()) + .expect("new tempfile") + .into_temp_path(); let mut writer = prepare_db_writer(&tmpfile); let mut items_iter = gen_data(N).collect::>().into_iter(); @@ -85,10 +84,13 @@ fn db_read(c: &mut Criterion) { fn db_write(c: &mut Criterion) { let dir = tempdir().expect("tempdir"); - let tmpfile = dir.path().join("test.tmp"); + c.bench_function("write", |b| { b.iter_batched( || { + let tmpfile = NamedTempFile::new_in(dir.path()) + .expect("new tempfile") + .into_temp_path(); let src = gen_data(N).collect::>().into_iter(); let writer = prepare_db_writer(&tmpfile); (src, writer)