Skip to content

Commit

Permalink
test jmeter benchmarking
Browse files Browse the repository at this point in the history
Signed-off-by: ruzell22 <[email protected]>
  • Loading branch information
ruzell22 committed Nov 21, 2023
1 parent a37fdce commit 827d9aa
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 33 deletions.
59 changes: 26 additions & 33 deletions .github/workflows/jmeter-benchmarking.yaml
Original file line number Diff line number Diff line change
@@ -1,44 +1,37 @@
name: Minimal setup
name: JMH Benchmark

on:
push:
pull_request:
branches:
- main

jobs:
benchmark:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2

- name: Set up JDK
uses: actions/setup-java@v2
with:
distribution: 'adopt'
java-version: '11'

- name: Run JMH Benchmark
run: |
javac Benchmark.java && java -jar target/benchmarks.jar
- name: Save Benchmark Results
run: |
cp path/to/generated/benchmark-results.json benchmark-results.json
- name: Display Benchmark Results
run: cat benchmark-results.json

- name: Continuous Benchmark
uses: benchmark-action/[email protected]

# jobs:
# benchmark:
# name: Performance regression check
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v2
# - uses: actions/setup-go@v4
# with:
# go-version: "stable"
# # Run benchmark with `go test -bench` and stores the output to a file
# - name: Run benchmark
# run: go mod init && go test -bench 'BenchmarkFib' | tee output.txt
# # 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: benchmark-action/github-action-benchmark@v1
# with:
# # What benchmark tool the output.txt came from
# tool: 'go'
# # 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
# # Upload the updated cache file for the next job by actions/cache
with:
tool: jmh
output-file-path: benchmark-results.json
21 changes: 21 additions & 0 deletions Benchmark.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.Measurement;
import org.openjdk.jmh.annotations.Setup;
import org.openjdk.jmh.annotations.State;
import org.openjdk.jmh.annotations.Scope;
import org.openjdk.jmh.annotations.Warmup;

@State(Scope.Benchmark)
public class Benchmark {

@Setup
public void setup() {
}

@Benchmark
@Warmup(iterations = 3)
@Measurement(iterations = 5)
public void benchmarkMethod() {
// benchmarked code
}
}

0 comments on commit 827d9aa

Please sign in to comment.