From 10d89f58864cb3cdcc445ce943de8bcca0b338c4 Mon Sep 17 00:00:00 2001 From: hal8174 Date: Thu, 20 Feb 2025 21:31:06 +0100 Subject: [PATCH] Add tracing perfetto --- Cargo.lock | 93 +++++++++++++++++++ factorio-blueprint-generator/Cargo.toml | 1 + .../src/bin/generate_factory.rs | 23 ++--- 3 files changed, 106 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 563efef..dd5a166 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -270,6 +270,12 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" +[[package]] +name = "bytes" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f61dac84819c6588b558454b194026eb1f09c293b9036ae9b159e74e73ab6cf9" + [[package]] name = "cast" version = "0.3.0" @@ -557,6 +563,7 @@ dependencies = [ "serde_json", "serde_yaml", "tracing", + "tracing-perfetto", "tracing-subscriber", ] @@ -584,6 +591,7 @@ dependencies = [ "image", "miette", "rand 0.9.0", + "rayon", "serde", "serde_json", "serde_yaml", @@ -627,6 +635,12 @@ dependencies = [ "simd-adler32", ] +[[package]] +name = "fixedbitset" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" + [[package]] name = "flate2" version = "1.0.35" @@ -969,6 +983,12 @@ dependencies = [ "simd-adler32", ] +[[package]] +name = "multimap" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" + [[package]] name = "new_debug_unreachable" version = "1.0.6" @@ -1090,6 +1110,16 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" 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]] name = "pin-project-lite" version = "0.2.16" @@ -1221,6 +1251,58 @@ dependencies = [ "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]] name = "qoi" version = "0.4.1" @@ -1811,6 +1893,17 @@ dependencies = [ "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]] name = "tracing-subscriber" version = "0.3.19" diff --git a/factorio-blueprint-generator/Cargo.toml b/factorio-blueprint-generator/Cargo.toml index ec65a98..5a25722 100644 --- a/factorio-blueprint-generator/Cargo.toml +++ b/factorio-blueprint-generator/Cargo.toml @@ -15,3 +15,4 @@ clap = { version = "4.5.26", features = ["derive"] } rand = { version = "0.9.0", features = ["small_rng"] } tracing = "0.1.41" tracing-subscriber = { version = "0.3.19", features = ["env-filter"] } +tracing-perfetto = { git = "https://git.he-li.dev/hal8174/tracing-perfetto.git" } diff --git a/factorio-blueprint-generator/src/bin/generate_factory.rs b/factorio-blueprint-generator/src/bin/generate_factory.rs index 38f0a64..2959e89 100644 --- a/factorio-blueprint-generator/src/bin/generate_factory.rs +++ b/factorio-blueprint-generator/src/bin/generate_factory.rs @@ -22,10 +22,11 @@ struct Args { fn main() { let args = Args::parse(); - tracing_subscriber::fmt::fmt() - .with_env_filter(EnvFilter::from_default_env()) - .with_span_events(FmtSpan::NEW | FmtSpan::CLOSE) - .init(); + // tracing_subscriber::fmt::fmt() + // .with_env_filter(EnvFilter::from_default_env()) + // .with_span_events(FmtSpan::NEW | FmtSpan::CLOSE) + // .init(); + tracing_perfetto::install_perfetto_subscriber(); let text = std::fs::File::open(&args.path).unwrap(); let factory_graph: FactoryGraph = serde_yaml::from_reader(text).unwrap(); @@ -33,18 +34,18 @@ fn main() { // dbg!(&factory_graph); let l = ValidLayout { - max_tries: 4, + size_increases: 32, retries: 4, - start_size: Position::new(256, 256), - growth: Position::new(16, 16), + start_size: Position::new(64, 64), + growth: Position::new(8, 8), }; let l = GeneticAlgorithm { mutation_retries: 20, - population_size: 20, - population_keep: 4, - population_new: 4, - generations: 40, + population_size: 4, + population_keep: 1, + population_new: 1, + generations: 5, valid_layout: l, }; let p = ConflictAvoidance {