This is an automated email from the ASF dual-hosted git repository.
paulk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/master by this push:
new 1a5d8b518b fix jmh tests (minor tweaks)
1a5d8b518b is described below
commit 1a5d8b518ba0affbb9a2f482d24621cacdce5c91
Author: Paul King <[email protected]>
AuthorDate: Mon Feb 16 11:12:27 2026 +1000
fix jmh tests (minor tweaks)
---
.github/workflows/groovy-build-performance.yml | 61 ++++++++++++++++++++++
.../groovy/org.apache.groovy-performance.gradle | 1 +
subprojects/performance/README.adoc | 7 ++-
3 files changed, 65 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/groovy-build-performance.yml
b/.github/workflows/groovy-build-performance.yml
new file mode 100644
index 0000000000..f9563704be
--- /dev/null
+++ b/.github/workflows/groovy-build-performance.yml
@@ -0,0 +1,61 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+name: Performance check
+
+on: [push, pull_request]
+
+permissions:
+ contents: read
+
+jobs:
+ test:
+ strategy:
+ fail-fast: false
+ runs-on: ubuntu-latest
+ env:
+ DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
+ steps:
+ - uses: actions/checkout@v6
+ - uses: actions/setup-java@v5
+ with:
+ distribution: 'zulu'
+ java-version: 21
+ check-latest: true
+ - uses: gradle/actions/setup-gradle@v5
+ - name: Compiler performance comparison
+ run: ./gradlew perf:performanceTests
+ timeout-minutes: 60
+ - name: Upload perf report
+ uses: actions/upload-artifact@v6
+ with:
+ name: perf-reports
+ path: build/*.csv
+ - name: Benchmarks
+ run: ./gradlew perf:jmh
+ timeout-minutes: 60
+ - name: Upload benchmarks report
+ uses: actions/upload-artifact@v6
+ with:
+ name: bench-reports-indy
+ path: build/results/jmh/
+ - name: Benchmarks classic
+ run: ./gradlew perf:jmh -Pindy=false
+ timeout-minutes: 60
+ - name: Upload benchmarks report
+ uses: actions/upload-artifact@v6
+ with:
+ name: bench-reports-classic
+ path: build/results/jmh/
diff --git a/build-logic/src/main/groovy/org.apache.groovy-performance.gradle
b/build-logic/src/main/groovy/org.apache.groovy-performance.gradle
index 1e0d956166..f7ee36eb52 100644
--- a/build-logic/src/main/groovy/org.apache.groovy-performance.gradle
+++ b/build-logic/src/main/groovy/org.apache.groovy-performance.gradle
@@ -90,6 +90,7 @@ tasks.named('test') {
tasks.named('jmh') {
inputs.property('benchInclude', project.findProperty('benchInclude') ?: '')
+ inputs.property('indy', project.findProperty('indy') ?: '')
dependsOn tasks.named('jmhClasses')
}
diff --git a/subprojects/performance/README.adoc
b/subprojects/performance/README.adoc
index e6e4aa15e5..7023ad418d 100644
--- a/subprojects/performance/README.adoc
+++ b/subprojects/performance/README.adoc
@@ -39,10 +39,9 @@ JMH Benchmarks can be run using:
./gradlew :perf:jmh
-In order to run the benchmarks against InvokeDynamic generated classes use
-the `indy` property:
+Groovy currently defaults to InvokeDynamic generated classes, but to get
classic callsite generation use the `indy` property:
- ./gradlew -Pindy=true :perf:jmh
+ ./gradlew -Pindy=false :perf:jmh
Groovy and Java sources placed in `src/test` will also be available to the
benchmarks.
@@ -53,5 +52,5 @@ To run a single benchmark or a matched set of benchmarks, use
the
./gradlew -PbenchInclude=CallsiteBench :perf:jmh
The `benchInclude` property will perform a partial match against package
-names or class names. It is equivalent to `.*${benchInclude}.*`.
+names or class names. It is equivalent to `.\*${benchInclude}.*`.