summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarl Lerche <me@carllerche.com>2020-11-13 19:30:52 -0800
committerGitHub <noreply@github.com>2020-11-13 19:30:52 -0800
commit97c2c4203cd7c42960cac895987c43a17dff052e (patch)
treef4a3cfebafb7afee68d6d4de1748daddcfc070c6
parent60366ca0fa3120f6c6d38cbd9087d0908e464120 (diff)
chore: automate running benchmarks (#3140)
Uses Github actions to run benchmarks.
-rw-r--r--.github/workflows/bench.yml55
-rw-r--r--benches/Cargo.toml8
-rw-r--r--benches/rt_multi_threaded.rs (renamed from benches/scheduler.rs)0
-rw-r--r--benches/sync_mpsc.rs (renamed from benches/mpsc.rs)0
4 files changed, 59 insertions, 4 deletions
diff --git a/.github/workflows/bench.yml b/.github/workflows/bench.yml
new file mode 100644
index 00000000..98925986
--- /dev/null
+++ b/.github/workflows/bench.yml
@@ -0,0 +1,55 @@
+name: Benchmark
+on:
+ push:
+ branches:
+ - master
+
+jobs:
+ benchmark:
+ name: Benchmark
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ bench:
+ - rt_multi_threaded
+ - sync_mpsc
+ - sync_rwlock
+ - sync_semaphore
+ steps:
+ - uses: actions/checkout@v2
+ - name: Install Rust
+ run: rustup update stable
+
+ # Run benchmark with `go test -bench` and stores the output to a file
+ - name: Run benchmark
+ run: cargo bench --bench ${{ matrix.bench }} | tee ../output.txt
+ working-directory: benches
+
+ # Download previous benchmark result from cache (if exists)
+ - name: Download previous benchmark data
+ uses: actions/cache@v1
+ with:
+ path: ./cache
+ key: ${{ runner.os }}-benchmark
+
+ # Run `github-action-benchmark` action
+ - name: Store benchmark result
+ uses: rhysd/github-action-benchmark@v1
+ with:
+ name: ${{ matrix.bench }}
+ # What benchmark tool the output.txt came from
+ tool: 'cargo'
+ # Where the output from the benchmark tool is stored
+ output-file-path: output.txt
+ # # Where the previous data file is stored
+ # external-data-json-path: ./cache/benchmark-data.json
+ # Workflow will fail when an alert happens
+ fail-on-alert: true
+ # GitHub API token to make a commit comment
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ # Enable alert commit comment
+ comment-on-alert: true
+ alert-comment-cc-users: '@tokio-rs/maintainers'
+ auto-push: true
+
+ # Upload the updated cache file for the next job by actions/cache \ No newline at end of file
diff --git a/benches/Cargo.toml b/benches/Cargo.toml
index cca0ece5..d0383f36 100644
--- a/benches/Cargo.toml
+++ b/benches/Cargo.toml
@@ -17,13 +17,13 @@ path = "spawn.rs"
harness = false
[[bench]]
-name = "mpsc"
-path = "mpsc.rs"
+name = "sync_mpsc"
+path = "sync_mpsc.rs"
harness = false
[[bench]]
-name = "scheduler"
-path = "scheduler.rs"
+name = "rt_multi_threaded"
+path = "rt_multi_threaded.rs"
harness = false
diff --git a/benches/scheduler.rs b/benches/rt_multi_threaded.rs
index 68a6d6a4..68a6d6a4 100644
--- a/benches/scheduler.rs
+++ b/benches/rt_multi_threaded.rs
diff --git a/benches/mpsc.rs b/benches/sync_mpsc.rs
index 3f7e3fca..3f7e3fca 100644
--- a/benches/mpsc.rs
+++ b/benches/sync_mpsc.rs