Skip to content

zThread Continuous Performance Benchmark Suite #9

zThread Continuous Performance Benchmark Suite

zThread Continuous Performance Benchmark Suite #9

Workflow file for this run

name: Benchmark Suite
on:
workflow_dispatch:
permissions:
contents: write
jobs:
benchmark:
name: Run Enterprise Benchmarks
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK 25
uses: actions/setup-java@v4
with:
java-version: '25'
distribution: 'temurin'
cache: maven
- name: Enable perf_events for async-profiler
run: |
sudo sysctl -w kernel.perf_event_paranoid=1
sudo sysctl -w kernel.kptr_restrict=0
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install Charting Dependencies
run: |
python -m pip install --upgrade pip
pip install matplotlib pandas seaborn
- name: Build zThread
run: ./mvnw clean install -DskipTests --batch-mode --no-transfer-progress
- name: Run JMH Benchmarks
run: ./mvnw exec:exec -pl zthread-benchmark -Dexec.executable="java" -Dexec.args="-classpath %classpath org.openjdk.jmh.Main -rf json -rff target/benchmark.json -prof gc" --batch-mode
- name: Generate Charts and Report
run: |
# Generate benchmark report inside zthread-benchmark
cd zthread-benchmark
python scripts/generate_charts.py target/benchmark.json
# Generate main README.md graph and update table
cd ..
python scripts/generate-graph.py zthread-benchmark/target/benchmark.json
- name: Commit Updated Benchmark Data
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: "docs(benchmark): auto-update performance charts and README"
file_pattern: "README.md assets/benchmark_graph.svg zthread-benchmark/charts/* zthread-benchmark/benchmark.md"
- name: Upload Benchmark Results
uses: actions/upload-artifact@v4
with:
name: benchmark-results
path: |
zthread-benchmark/target/benchmark.json
zthread-benchmark/charts/
zthread-benchmark/benchmark.md
assets/benchmark_graph.svg
retention-days: 14