Add benchmarks for analysis passes
This commit is contained in:
49
Cargo.lock
generated
49
Cargo.lock
generated
@@ -38,6 +38,7 @@ version = "0.1.0"
|
||||
dependencies = [
|
||||
"colors-transform",
|
||||
"csdemo",
|
||||
"divan",
|
||||
"image",
|
||||
"phf",
|
||||
"pretty_assertions",
|
||||
@@ -554,6 +555,7 @@ dependencies = [
|
||||
"anstyle",
|
||||
"clap_lex",
|
||||
"strsim",
|
||||
"terminal_size",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -606,6 +608,12 @@ dependencies = [
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "condtype"
|
||||
version = "1.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "baf0a07a401f374238ab8e2f11a104d2851bf9ce711ec69804834de8af45c7af"
|
||||
|
||||
[[package]]
|
||||
name = "config"
|
||||
version = "0.14.1"
|
||||
@@ -927,6 +935,31 @@ dependencies = [
|
||||
"subtle",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "divan"
|
||||
version = "0.1.15"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6e05d17bd4ff1c1e7998ed4623d2efd91f72f1e24141ac33aac9377974270e1f"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"clap",
|
||||
"condtype",
|
||||
"divan-macros",
|
||||
"libc",
|
||||
"regex-lite",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "divan-macros"
|
||||
version = "0.1.15"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1b4464d46ce68bfc7cb76389248c7c254def7baca8bece0693b02b83842c4c88"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "dlv-list"
|
||||
version = "0.5.2"
|
||||
@@ -2933,6 +2966,12 @@ dependencies = [
|
||||
"regex-syntax 0.8.5",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "regex-lite"
|
||||
version = "0.1.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a"
|
||||
|
||||
[[package]]
|
||||
name = "regex-syntax"
|
||||
version = "0.6.29"
|
||||
@@ -3709,6 +3748,16 @@ dependencies = [
|
||||
"windows-sys 0.59.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "terminal_size"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4f599bd7ca042cfdf8f4512b277c02ba102247820f9d9d4a9f521f496751a6ef"
|
||||
dependencies = [
|
||||
"rustix",
|
||||
"windows-sys 0.59.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "thiserror"
|
||||
version = "1.0.66"
|
||||
|
||||
@@ -17,3 +17,9 @@ phf = { version = "0.11" }
|
||||
[dev-dependencies]
|
||||
pretty_assertions = { version = "1.4" }
|
||||
tracing-test = { version = "0.2", features = ["no-env-filter"] }
|
||||
|
||||
divan = "0.1.15"
|
||||
|
||||
[[bench]]
|
||||
name = "analysis"
|
||||
harness = false
|
||||
|
||||
35
analysis/benches/analysis.rs
Normal file
35
analysis/benches/analysis.rs
Normal file
@@ -0,0 +1,35 @@
|
||||
fn main() {
|
||||
divan::main();
|
||||
}
|
||||
|
||||
#[divan::bench(args = ["dust2.dem", "inferno.dem", "nuke.dem"])]
|
||||
fn heatmap(bencher: divan::Bencher, file: &str) {
|
||||
let path = std::path::Path::new(env!("CARGO_MANIFEST_DIR"))
|
||||
.join("../testfiles/")
|
||||
.join(file);
|
||||
let data = std::fs::read(path).unwrap();
|
||||
|
||||
let config = analysis::heatmap::Config { cell_size: 2.0 };
|
||||
|
||||
bencher.bench(|| analysis::heatmap::parse(divan::black_box(&config), divan::black_box(&data)));
|
||||
}
|
||||
|
||||
#[divan::bench(args = ["dust2.dem", "inferno.dem", "nuke.dem"])]
|
||||
fn perround(bencher: divan::Bencher, file: &str) {
|
||||
let path = std::path::Path::new(env!("CARGO_MANIFEST_DIR"))
|
||||
.join("../testfiles/")
|
||||
.join(file);
|
||||
let data = std::fs::read(path).unwrap();
|
||||
|
||||
bencher.bench(|| analysis::perround::parse(divan::black_box(&data)));
|
||||
}
|
||||
|
||||
#[divan::bench(args = ["dust2.dem", "inferno.dem", "nuke.dem"])]
|
||||
fn endofgame(bencher: divan::Bencher, file: &str) {
|
||||
let path = std::path::Path::new(env!("CARGO_MANIFEST_DIR"))
|
||||
.join("../testfiles/")
|
||||
.join(file);
|
||||
let data = std::fs::read(path).unwrap();
|
||||
|
||||
bencher.bench(|| analysis::endofgame::parse(divan::black_box(&data)));
|
||||
}
|
||||
Reference in New Issue
Block a user