Migrate iai-callgrind to the renamed successor gungraun (#4056)
* Add .nvim.lua to gitignore * Migrate from iai-callgrind to the renamed successor gungraun --------- Co-authored-by: Dennis Kobert <dennis@kobert.dev>
This commit is contained in:
parent
1c9c19a697
commit
456a7c868d
|
|
@ -22,27 +22,14 @@ jobs:
|
||||||
- name: Install Rust
|
- name: Install Rust
|
||||||
uses: dtolnay/rust-toolchain@stable
|
uses: dtolnay/rust-toolchain@stable
|
||||||
|
|
||||||
- name: Install Valgrind
|
|
||||||
run: |
|
|
||||||
sudo apt update
|
|
||||||
sudo apt install -y valgrind
|
|
||||||
|
|
||||||
- name: Cache Rust dependencies
|
- name: Cache Rust dependencies
|
||||||
uses: Swatinem/rust-cache@v2
|
uses: Swatinem/rust-cache@v2
|
||||||
with:
|
with:
|
||||||
# Cache on Cargo.lock file
|
# Cache on Cargo.lock file
|
||||||
cache-on-failure: true
|
cache-on-failure: true
|
||||||
|
|
||||||
- name: Cache iai-callgrind binary
|
- name: Install gungraun-runner and valgrind
|
||||||
id: cache-iai
|
uses: gungraun/setup-gungraun@v1
|
||||||
uses: actions/cache@v5
|
|
||||||
with:
|
|
||||||
path: ~/.cargo/bin/iai-callgrind-runner
|
|
||||||
key: ${{ runner.os }}-iai-callgrind-runner-0.16.1
|
|
||||||
|
|
||||||
- name: Install iai-callgrind
|
|
||||||
if: steps.cache-iai.outputs.cache-hit != 'true'
|
|
||||||
run: cargo install iai-callgrind-runner@0.16.1
|
|
||||||
|
|
||||||
- name: Checkout master branch
|
- name: Checkout master branch
|
||||||
run: |
|
run: |
|
||||||
|
|
@ -66,21 +53,21 @@ jobs:
|
||||||
id: cache-benchmark-baselines
|
id: cache-benchmark-baselines
|
||||||
uses: actions/cache@v5
|
uses: actions/cache@v5
|
||||||
with:
|
with:
|
||||||
path: target/iai
|
path: target/gungraun
|
||||||
key: ${{ runner.os }}-${{ runner.arch }}-${{ steps.cpu-info.outputs.cpu-hash }}-benchmark-baselines-master-${{ steps.master-sha.outputs.sha }}
|
key: ${{ runner.os }}-${{ runner.arch }}-${{ steps.cpu-info.outputs.cpu-hash }}-gungraun-benchmark-baselines-master-${{ steps.master-sha.outputs.sha }}
|
||||||
restore-keys: |
|
restore-keys: |
|
||||||
${{ runner.os }}-${{ runner.arch }}-${{ steps.cpu-info.outputs.cpu-hash }}-benchmark-baselines-master-
|
${{ runner.os }}-${{ runner.arch }}-${{ steps.cpu-info.outputs.cpu-hash }}-gungraun-benchmark-baselines-master-
|
||||||
|
|
||||||
- name: Run baseline benchmarks
|
- name: Run baseline benchmarks
|
||||||
if: steps.cache-benchmark-baselines.outputs.cache-hit != 'true'
|
if: steps.cache-benchmark-baselines.outputs.cache-hit != 'true'
|
||||||
run: |
|
run: |
|
||||||
# Compile benchmarks
|
# Compile benchmarks
|
||||||
cargo bench --bench compile_demo_art_iai -- --save-baseline=master
|
cargo bench --bench compile_demo_art_gungraun -- --save-baseline=master
|
||||||
|
|
||||||
# Runtime benchmarks
|
# Runtime benchmarks
|
||||||
cargo bench --bench update_executor_iai -- --save-baseline=master
|
cargo bench --bench update_executor_gungraun -- --save-baseline=master
|
||||||
cargo bench --bench run_once_iai -- --save-baseline=master
|
cargo bench --bench run_once_gungraun -- --save-baseline=master
|
||||||
cargo bench --bench run_cached_iai -- --save-baseline=master
|
cargo bench --bench run_cached_gungraun -- --save-baseline=master
|
||||||
|
|
||||||
- name: Checkout PR branch
|
- name: Checkout PR branch
|
||||||
run: git checkout ${{ github.event.pull_request.head.sha }}
|
run: git checkout ${{ github.event.pull_request.head.sha }}
|
||||||
|
|
@ -88,12 +75,12 @@ jobs:
|
||||||
- name: Run PR benchmarks
|
- name: Run PR benchmarks
|
||||||
run: |
|
run: |
|
||||||
# Compile benchmarks
|
# Compile benchmarks
|
||||||
cargo bench --bench compile_demo_art_iai -- --baseline=master --output-format=json | jq -sc | sed 's/\\"//g' > /tmp/compile_output.json
|
cargo bench --bench compile_demo_art_gungraun -- --baseline=master --output-format=json | jq -sc | sed 's/\\"//g' > /tmp/compile_output.json
|
||||||
|
|
||||||
# Runtime benchmarks
|
# Runtime benchmarks
|
||||||
cargo bench --bench update_executor_iai -- --baseline=master --output-format=json | jq -sc | sed 's/\\"//g' > /tmp/update_output.json
|
cargo bench --bench update_executor_gungraun -- --baseline=master --output-format=json | jq -sc | sed 's/\\"//g' > /tmp/update_output.json
|
||||||
cargo bench --bench run_once_iai -- --baseline=master --output-format=json | jq -sc | sed 's/\\"//g' > /tmp/run_once_output.json
|
cargo bench --bench run_once_gungraun -- --baseline=master --output-format=json | jq -sc | sed 's/\\"//g' > /tmp/run_once_output.json
|
||||||
cargo bench --bench run_cached_iai -- --baseline=master --output-format=json | jq -sc | sed 's/\\"//g' > /tmp/run_cached_output.json
|
cargo bench --bench run_cached_gungraun -- --baseline=master --output-format=json | jq -sc | sed 's/\\"//g' > /tmp/run_cached_output.json
|
||||||
|
|
||||||
- name: Make old comments collapsed by default
|
- name: Make old comments collapsed by default
|
||||||
# Only run if we have write permissions (not a fork)
|
# Only run if we have write permissions (not a fork)
|
||||||
|
|
|
||||||
|
|
@ -12,3 +12,4 @@ flamegraph.svg
|
||||||
.idea/
|
.idea/
|
||||||
.direnv
|
.direnv
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
.nvim.lua
|
||||||
|
|
|
||||||
|
|
@ -1889,7 +1889,7 @@ dependencies = [
|
||||||
"graphene-core",
|
"graphene-core",
|
||||||
"graphene-hash",
|
"graphene-hash",
|
||||||
"graphic-types",
|
"graphic-types",
|
||||||
"iai-callgrind",
|
"gungraun",
|
||||||
"js-sys",
|
"js-sys",
|
||||||
"log",
|
"log",
|
||||||
"pretty_assertions",
|
"pretty_assertions",
|
||||||
|
|
@ -2243,6 +2243,43 @@ dependencies = [
|
||||||
"svg_fmt",
|
"svg_fmt",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "gungraun"
|
||||||
|
version = "0.18.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "2e2e7d17b75a18300d495a5e79970067b92d74e4858c28326e125f2d55b1b566"
|
||||||
|
dependencies = [
|
||||||
|
"bincode",
|
||||||
|
"derive_more",
|
||||||
|
"gungraun-macros",
|
||||||
|
"gungraun-runner",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "gungraun-macros"
|
||||||
|
version = "0.8.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "e35c7fb6133421db1cf752b7a2838d9277a26810ccaeeca7aa449f96ad7c2b01"
|
||||||
|
dependencies = [
|
||||||
|
"derive_more",
|
||||||
|
"proc-macro-error2",
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"rustc_version",
|
||||||
|
"serde",
|
||||||
|
"serde_json",
|
||||||
|
"syn 2.0.106",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "gungraun-runner"
|
||||||
|
version = "0.18.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "c19bb4c552085f983300b11694022d7584810dca3500c220962ab2353327fb45"
|
||||||
|
dependencies = [
|
||||||
|
"serde",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "h2"
|
name = "h2"
|
||||||
version = "0.4.12"
|
version = "0.4.12"
|
||||||
|
|
@ -2442,42 +2479,6 @@ dependencies = [
|
||||||
"windows-registry",
|
"windows-registry",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "iai-callgrind"
|
|
||||||
version = "0.16.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "0b1e4910d3a9137442723dfb772c32dc10674c4181ca078d2fd227cd5dce9db0"
|
|
||||||
dependencies = [
|
|
||||||
"bincode",
|
|
||||||
"derive_more",
|
|
||||||
"iai-callgrind-macros",
|
|
||||||
"iai-callgrind-runner",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "iai-callgrind-macros"
|
|
||||||
version = "0.6.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "4d03775318d3f9f01b39ac6612b01464006dc397a654a89dd57df2fd34fb68c3"
|
|
||||||
dependencies = [
|
|
||||||
"derive_more",
|
|
||||||
"proc-macro-error2",
|
|
||||||
"proc-macro2",
|
|
||||||
"quote",
|
|
||||||
"serde",
|
|
||||||
"serde_json",
|
|
||||||
"syn 2.0.106",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "iai-callgrind-runner"
|
|
||||||
version = "0.16.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "b74c9743c00c3bca4aaffc69c87cae56837796cd362438daf354a3f785788c68"
|
|
||||||
dependencies = [
|
|
||||||
"serde",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "iana-time-zone"
|
name = "iana-time-zone"
|
||||||
version = "0.1.63"
|
version = "0.1.63"
|
||||||
|
|
@ -2694,7 +2695,7 @@ dependencies = [
|
||||||
"graph-craft",
|
"graph-craft",
|
||||||
"graphene-core",
|
"graphene-core",
|
||||||
"graphene-std",
|
"graphene-std",
|
||||||
"iai-callgrind",
|
"gungraun",
|
||||||
"log",
|
"log",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"preprocessor",
|
"preprocessor",
|
||||||
|
|
@ -4643,6 +4644,15 @@ dependencies = [
|
||||||
"thiserror 2.0.18",
|
"thiserror 2.0.18",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rustc_version"
|
||||||
|
version = "0.4.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
|
||||||
|
dependencies = [
|
||||||
|
"semver",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustix"
|
name = "rustix"
|
||||||
version = "1.0.8"
|
version = "1.0.8"
|
||||||
|
|
|
||||||
|
|
@ -199,7 +199,7 @@ petgraph = { version = "0.7", default-features = false, features = ["graphmap"]
|
||||||
half = { version = "2.4", default-features = false, features = ["bytemuck"] }
|
half = { version = "2.4", default-features = false, features = ["bytemuck"] }
|
||||||
tinyvec = { version = "1", features = ["std"] }
|
tinyvec = { version = "1", features = ["std"] }
|
||||||
criterion = { version = "0.7", features = ["html_reports"] }
|
criterion = { version = "0.7", features = ["html_reports"] }
|
||||||
iai-callgrind = { version = "0.16" }
|
gungraun = { version = "0.18" }
|
||||||
ndarray = "0.16"
|
ndarray = "0.16"
|
||||||
strum = { version = "0.27", features = ["derive"] }
|
strum = { version = "0.27", features = ["derive"] }
|
||||||
dirs = "6.0"
|
dirs = "6.0"
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ ignore = [
|
||||||
"RUSTSEC-2024-0388", # Unmaintained `derivative`, used directly by graphite-editor and graphite-desktop
|
"RUSTSEC-2024-0388", # Unmaintained `derivative`, used directly by graphite-editor and graphite-desktop
|
||||||
"RUSTSEC-2024-0436", # Unmaintained `paste`, pulled in by dependencies `metal` and `wgpu-hal`
|
"RUSTSEC-2024-0436", # Unmaintained `paste`, pulled in by dependencies `metal` and `wgpu-hal`
|
||||||
"RUSTSEC-2025-0134", # Unmaintained `rustls-pemfile`, pulled in by build dependency `download-cef`
|
"RUSTSEC-2025-0134", # Unmaintained `rustls-pemfile`, pulled in by build dependency `download-cef`
|
||||||
"RUSTSEC-2025-0141", # Unmaintained `bincode`, pulled in by dev dependency `iai-callgrind`
|
"RUSTSEC-2025-0141", # Unmaintained `bincode`, pulled in by dev dependency `gungraun`
|
||||||
]
|
]
|
||||||
# Threshold for security vulnerabilities, any vulnerability with a CVSS score
|
# Threshold for security vulnerabilities, any vulnerability with a CVSS score
|
||||||
# lower than the range specified will be ignored. Note that ignored advisories
|
# lower than the range specified will be ignored. Note that ignored advisories
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,7 @@ winit = { workspace = true }
|
||||||
graph-craft = { workspace = true, features = ["loading"] }
|
graph-craft = { workspace = true, features = ["loading"] }
|
||||||
pretty_assertions = { workspace = true }
|
pretty_assertions = { workspace = true }
|
||||||
criterion = { workspace = true }
|
criterion = { workspace = true }
|
||||||
iai-callgrind = { workspace = true }
|
gungraun = { workspace = true }
|
||||||
|
|
||||||
# Benchmarks
|
# Benchmarks
|
||||||
[[bench]]
|
[[bench]]
|
||||||
|
|
@ -70,5 +70,5 @@ name = "compile_demo_art_criterion"
|
||||||
harness = false
|
harness = false
|
||||||
|
|
||||||
[[bench]]
|
[[bench]]
|
||||||
name = "compile_demo_art_iai"
|
name = "compile_demo_art_gungraun"
|
||||||
harness = false
|
harness = false
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
use graph_craft::document::NodeNetwork;
|
use graph_craft::document::NodeNetwork;
|
||||||
use graph_craft::util::*;
|
use graph_craft::util::*;
|
||||||
use iai_callgrind::{library_benchmark, library_benchmark_group, main};
|
use gungraun::prelude::*;
|
||||||
|
|
||||||
#[library_benchmark]
|
#[library_benchmark]
|
||||||
#[benches::with_setup(args = ["isometric-fountain", "painted-dreams", "procedural-string-lights", "parametric-dunescape", "red-dress", "valley-of-spires"], setup = load_from_name)]
|
#[benches::with_setup(args = ["isometric-fountain", "painted-dreams", "procedural-string-lights", "parametric-dunescape", "red-dress", "valley-of-spires"], setup = load_from_name)]
|
||||||
|
|
@ -30,7 +30,7 @@ serde = { workspace = true }
|
||||||
# Workspace dependencies
|
# Workspace dependencies
|
||||||
graph-craft = { workspace = true, features = ["loading"] }
|
graph-craft = { workspace = true, features = ["loading"] }
|
||||||
criterion = { workspace = true }
|
criterion = { workspace = true }
|
||||||
iai-callgrind = { workspace = true }
|
gungraun = { workspace = true }
|
||||||
preprocessor = { workspace = true }
|
preprocessor = { workspace = true }
|
||||||
|
|
||||||
# Benchmarks
|
# Benchmarks
|
||||||
|
|
@ -47,13 +47,13 @@ name = "run_cached"
|
||||||
harness = false
|
harness = false
|
||||||
|
|
||||||
[[bench]]
|
[[bench]]
|
||||||
name = "update_executor_iai"
|
name = "update_executor_gungraun"
|
||||||
harness = false
|
harness = false
|
||||||
|
|
||||||
[[bench]]
|
[[bench]]
|
||||||
name = "run_once_iai"
|
name = "run_once_gungraun"
|
||||||
harness = false
|
harness = false
|
||||||
|
|
||||||
[[bench]]
|
[[bench]]
|
||||||
name = "run_cached_iai"
|
name = "run_cached_gungraun"
|
||||||
harness = false
|
harness = false
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ mod benchmark_util;
|
||||||
|
|
||||||
use benchmark_util::setup_network;
|
use benchmark_util::setup_network;
|
||||||
use graphene_std::application_io::RenderConfig;
|
use graphene_std::application_io::RenderConfig;
|
||||||
use iai_callgrind::{library_benchmark, library_benchmark_group, main};
|
use gungraun::prelude::*;
|
||||||
use interpreted_executor::dynamic_executor::DynamicExecutor;
|
use interpreted_executor::dynamic_executor::DynamicExecutor;
|
||||||
use std::hint::black_box;
|
use std::hint::black_box;
|
||||||
|
|
||||||
|
|
@ -2,7 +2,7 @@ mod benchmark_util;
|
||||||
|
|
||||||
use benchmark_util::setup_network;
|
use benchmark_util::setup_network;
|
||||||
use graphene_std::application_io;
|
use graphene_std::application_io;
|
||||||
use iai_callgrind::{library_benchmark, library_benchmark_group, main};
|
use gungraun::prelude::*;
|
||||||
use interpreted_executor::dynamic_executor::DynamicExecutor;
|
use interpreted_executor::dynamic_executor::DynamicExecutor;
|
||||||
use std::hint::black_box;
|
use std::hint::black_box;
|
||||||
|
|
||||||
|
|
@ -2,7 +2,7 @@ mod benchmark_util;
|
||||||
|
|
||||||
use benchmark_util::setup_network;
|
use benchmark_util::setup_network;
|
||||||
use graph_craft::proto::ProtoNetwork;
|
use graph_craft::proto::ProtoNetwork;
|
||||||
use iai_callgrind::{library_benchmark, library_benchmark_group, main};
|
use gungraun::prelude::*;
|
||||||
use interpreted_executor::dynamic_executor::DynamicExecutor;
|
use interpreted_executor::dynamic_executor::DynamicExecutor;
|
||||||
use std::hint::black_box;
|
use std::hint::black_box;
|
||||||
|
|
||||||
Loading…
Reference in New Issue