1
Fork 0
mirror of https://github.com/redstrate/Physis.git synced 2025-04-24 21:37:46 +00:00
physis/benches/physis_benchmark.rs

40 lines
1.1 KiB
Rust
Raw Normal View History

// SPDX-FileCopyrightText: 2023 Joshua Goins <josh@redstrate.com>
// SPDX-License-Identifier: GPL-3.0-or-later
2022-08-16 11:52:07 -04:00
use std::env;
2022-07-19 19:29:41 -04:00
use criterion::{Criterion, criterion_group, criterion_main};
use physis::sqpack::calculate_hash;
2022-07-19 19:29:41 -04:00
fn reload_repos() {
let game_dir = env::var("FFXIV_GAME_DIR").unwrap();
2022-08-16 11:52:07 -04:00
let mut gamedata =
physis::gamedata::GameData::from_existing(format!("{}/game", game_dir).as_str()).unwrap();
2022-07-19 19:29:41 -04:00
gamedata.reload_repositories();
}
fn bench_calculate_hash() {
calculate_hash("exd/root.exl");
}
fn fetch_data() {
let game_dir = env::var("FFXIV_GAME_DIR").unwrap();
2022-08-16 11:52:07 -04:00
let mut gamedata =
physis::gamedata::GameData::from_existing(format!("{}/game", game_dir).as_str()).unwrap();
2022-07-19 19:29:41 -04:00
gamedata.reload_repositories();
gamedata.extract("exd/root.exl");
}
fn criterion_benchmark(c: &mut Criterion) {
2022-08-16 11:50:18 -04:00
c.bench_function("hash calc", |b| b.iter(bench_calculate_hash));
c.bench_function("gamedata reloading repositories", |b| b.iter(reload_repos));
c.bench_function("gamedata extract", |b| b.iter(fetch_data));
2022-07-19 19:29:41 -04:00
}
criterion_group!(benches, criterion_benchmark);
2022-08-16 11:52:07 -04:00
criterion_main!(benches);