Add tracing perfetto

This commit is contained in:
hal8174 2025-02-20 21:31:06 +01:00
parent 3b8865c169
commit 10d89f5886
3 changed files with 106 additions and 11 deletions

93
Cargo.lock generated
View file

@ -270,6 +270,12 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495"
[[package]]
name = "bytes"
version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f61dac84819c6588b558454b194026eb1f09c293b9036ae9b159e74e73ab6cf9"
[[package]] [[package]]
name = "cast" name = "cast"
version = "0.3.0" version = "0.3.0"
@ -557,6 +563,7 @@ dependencies = [
"serde_json", "serde_json",
"serde_yaml", "serde_yaml",
"tracing", "tracing",
"tracing-perfetto",
"tracing-subscriber", "tracing-subscriber",
] ]
@ -584,6 +591,7 @@ dependencies = [
"image", "image",
"miette", "miette",
"rand 0.9.0", "rand 0.9.0",
"rayon",
"serde", "serde",
"serde_json", "serde_json",
"serde_yaml", "serde_yaml",
@ -627,6 +635,12 @@ dependencies = [
"simd-adler32", "simd-adler32",
] ]
[[package]]
name = "fixedbitset"
version = "0.5.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99"
[[package]] [[package]]
name = "flate2" name = "flate2"
version = "1.0.35" version = "1.0.35"
@ -969,6 +983,12 @@ dependencies = [
"simd-adler32", "simd-adler32",
] ]
[[package]]
name = "multimap"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03"
[[package]] [[package]]
name = "new_debug_unreachable" name = "new_debug_unreachable"
version = "1.0.6" version = "1.0.6"
@ -1090,6 +1110,16 @@ version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
[[package]]
name = "petgraph"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772"
dependencies = [
"fixedbitset",
"indexmap",
]
[[package]] [[package]]
name = "pin-project-lite" name = "pin-project-lite"
version = "0.2.16" version = "0.2.16"
@ -1221,6 +1251,58 @@ dependencies = [
"syn", "syn",
] ]
[[package]]
name = "prost"
version = "0.13.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5"
dependencies = [
"bytes",
"prost-derive",
]
[[package]]
name = "prost-build"
version = "0.13.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf"
dependencies = [
"heck",
"itertools 0.12.1",
"log",
"multimap",
"once_cell",
"petgraph",
"prettyplease",
"prost",
"prost-types",
"regex",
"syn",
"tempfile",
]
[[package]]
name = "prost-derive"
version = "0.13.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d"
dependencies = [
"anyhow",
"itertools 0.12.1",
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "prost-types"
version = "0.13.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16"
dependencies = [
"prost",
]
[[package]] [[package]]
name = "qoi" name = "qoi"
version = "0.4.1" version = "0.4.1"
@ -1811,6 +1893,17 @@ dependencies = [
"tracing-core", "tracing-core",
] ]
[[package]]
name = "tracing-perfetto"
version = "0.1.0"
source = "git+https://git.he-li.dev/hal8174/tracing-perfetto.git#349c0e688c5701dd89f95819e05b1552615d747b"
dependencies = [
"prost",
"prost-build",
"prost-types",
"tracing",
]
[[package]] [[package]]
name = "tracing-subscriber" name = "tracing-subscriber"
version = "0.3.19" version = "0.3.19"

View file

@ -15,3 +15,4 @@ clap = { version = "4.5.26", features = ["derive"] }
rand = { version = "0.9.0", features = ["small_rng"] } rand = { version = "0.9.0", features = ["small_rng"] }
tracing = "0.1.41" tracing = "0.1.41"
tracing-subscriber = { version = "0.3.19", features = ["env-filter"] } tracing-subscriber = { version = "0.3.19", features = ["env-filter"] }
tracing-perfetto = { git = "https://git.he-li.dev/hal8174/tracing-perfetto.git" }

View file

@ -22,10 +22,11 @@ struct Args {
fn main() { fn main() {
let args = Args::parse(); let args = Args::parse();
tracing_subscriber::fmt::fmt() // tracing_subscriber::fmt::fmt()
.with_env_filter(EnvFilter::from_default_env()) // .with_env_filter(EnvFilter::from_default_env())
.with_span_events(FmtSpan::NEW | FmtSpan::CLOSE) // .with_span_events(FmtSpan::NEW | FmtSpan::CLOSE)
.init(); // .init();
tracing_perfetto::install_perfetto_subscriber();
let text = std::fs::File::open(&args.path).unwrap(); let text = std::fs::File::open(&args.path).unwrap();
let factory_graph: FactoryGraph = serde_yaml::from_reader(text).unwrap(); let factory_graph: FactoryGraph = serde_yaml::from_reader(text).unwrap();
@ -33,18 +34,18 @@ fn main() {
// dbg!(&factory_graph); // dbg!(&factory_graph);
let l = ValidLayout { let l = ValidLayout {
max_tries: 4, size_increases: 32,
retries: 4, retries: 4,
start_size: Position::new(256, 256), start_size: Position::new(64, 64),
growth: Position::new(16, 16), growth: Position::new(8, 8),
}; };
let l = GeneticAlgorithm { let l = GeneticAlgorithm {
mutation_retries: 20, mutation_retries: 20,
population_size: 20, population_size: 4,
population_keep: 4, population_keep: 1,
population_new: 4, population_new: 1,
generations: 40, generations: 5,
valid_layout: l, valid_layout: l,
}; };
let p = ConflictAvoidance { let p = ConflictAvoidance {