lofty-rs/benches/read_file.rs

69 lines
1.6 KiB
Rust
Raw Normal View History

2022-09-24 02:34:22 -04:00
use lofty::{ParseOptions, Probe};
2021-12-10 22:09:11 -05:00
use criterion::{criterion_group, criterion_main, Criterion};
use std::io::Cursor;
macro_rules! test_read_file {
2022-07-24 19:17:59 -04:00
($c:ident, [$(($NAME:ident, $path:expr)),+ $(,)?]) => {
2022-01-31 18:19:11 -05:00
let mut g = $c.benchmark_group("File reading (Inferred from Content)");
2021-12-10 22:09:11 -05:00
2022-01-31 18:19:11 -05:00
$(
const $NAME: &[u8] = include_bytes!($path);
2021-12-10 22:09:11 -05:00
2022-01-31 18:19:11 -05:00
g.bench_function(
stringify!($NAME),
|b| b.iter(|| {
Probe::new(Cursor::new($NAME))
2022-09-24 02:34:22 -04:00
.options(ParseOptions::new())
2022-01-31 18:19:11 -05:00
.guess_file_type()
.unwrap()
2022-09-24 02:34:22 -04:00
.read()
2022-01-31 18:19:11 -05:00
.unwrap()
})
);
)+
}
}
2021-12-10 22:09:11 -05:00
fn content_infer_read(c: &mut Criterion) {
2022-01-31 18:19:11 -05:00
test_read_file!(
c,
[
(AAC, "../benches_assets/01 TempleOS Hymn Risen (Remix).aac"),
(
AIFF,
"../benches_assets/01 TempleOS Hymn Risen (Remix).aiff"
),
(APE, "../benches_assets/01 TempleOS Hymn Risen (Remix).ape"),
(
FLAC,
"../benches_assets/01 TempleOS Hymn Risen (Remix).flac"
),
(MP4, "../benches_assets/01 TempleOS Hymn Risen (Remix).m4a"),
(MP3, "../benches_assets/01 TempleOS Hymn Risen (Remix).mp3"),
(MPC, "../benches_assets/01 TempleOS Hymn Risen (Remix).mpc"),
(
OPUS,
"../benches_assets/01 TempleOS Hymn Risen (Remix).opus"
),
(RIFF, "../benches_assets/01 TempleOS Hymn Risen (Remix).wav"),
(
SPEEX,
"../benches_assets/01 TempleOS Hymn Risen (Remix).spx"
),
(
VORBIS,
"../benches_assets/01 TempleOS Hymn Risen (Remix).ogg"
),
(
WAVPACK,
"../benches_assets/01 TempleOS Hymn Risen (Remix).wv"
),
2022-01-31 18:19:11 -05:00
]
);
}
2022-02-19 01:16:35 -05:00
criterion_group!(benches, content_infer_read);
criterion_main!(benches);