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 bb4082f971 fix jmh tests (change toString() call to hashCode() to
avoid FormatHelper involvement which obscures comparison, plus add
CompileStatic dispatch variants)
bb4082f971 is described below
commit bb4082f971abd9919b26301fcf12f861000af81e
Author: Paul King <[email protected]>
AuthorDate: Mon Feb 23 18:48:14 2026 +1000
fix jmh tests (change toString() call to hashCode() to avoid FormatHelper
involvement which obscures comparison, plus add CompileStatic dispatch variants)
---
.../org/apache/groovy/bench/dispatch/Callsite.groovy | 12 +++++++++++-
.../org/apache/groovy/bench/dispatch/CallsiteBench.java | 15 +++++++++++++++
2 files changed, 26 insertions(+), 1 deletion(-)
diff --git
a/subprojects/performance/src/jmh/groovy/org/apache/groovy/bench/dispatch/Callsite.groovy
b/subprojects/performance/src/jmh/groovy/org/apache/groovy/bench/dispatch/Callsite.groovy
index 2d0bc19f97..9e0791b3a0 100644
---
a/subprojects/performance/src/jmh/groovy/org/apache/groovy/bench/dispatch/Callsite.groovy
+++
b/subprojects/performance/src/jmh/groovy/org/apache/groovy/bench/dispatch/Callsite.groovy
@@ -18,11 +18,21 @@
*/
package org.apache.groovy.bench.dispatch
+import groovy.transform.CompileStatic
+import org.openjdk.jmh.infra.Blackhole
+
class Callsite {
static void dispatch(Object[] receivers, bh) {
for (Object receiver : receivers) {
- bh.consume(receiver.toString())
+ bh.consume(receiver.hashCode())
+ }
+ }
+
+ @CompileStatic
+ static void dispatchCS(Object[] receivers, Blackhole bh) {
+ for (Object receiver : receivers) {
+ bh.consume(receiver.hashCode())
}
}
diff --git
a/subprojects/performance/src/jmh/groovy/org/apache/groovy/bench/dispatch/CallsiteBench.java
b/subprojects/performance/src/jmh/groovy/org/apache/groovy/bench/dispatch/CallsiteBench.java
index 20c8e6278d..a6aa42bf61 100644
---
a/subprojects/performance/src/jmh/groovy/org/apache/groovy/bench/dispatch/CallsiteBench.java
+++
b/subprojects/performance/src/jmh/groovy/org/apache/groovy/bench/dispatch/CallsiteBench.java
@@ -37,6 +37,11 @@ public class CallsiteBench {
Callsite.dispatch(state.receivers, bh);
}
+ @Benchmark
+ public void dispatch_1_monomorphic_groovyCS(MonomorphicState state,
Blackhole bh) {
+ Callsite.dispatchCS(state.receivers, bh);
+ }
+
@Benchmark
public void dispatch_1_monomorphic_java(MonomorphicState state, Blackhole
bh) {
JavaDispatch.dispatch(state.receivers, bh);
@@ -47,6 +52,11 @@ public class CallsiteBench {
Callsite.dispatch(state.receivers, bh);
}
+ @Benchmark
+ public void dispatch_3_polymorphic_groovyCS(PolymorphicState state,
Blackhole bh) {
+ Callsite.dispatchCS(state.receivers, bh);
+ }
+
@Benchmark
public void dispatch_3_polymorphic_java(PolymorphicState state, Blackhole
bh) {
JavaDispatch.dispatch(state.receivers, bh);
@@ -57,6 +67,11 @@ public class CallsiteBench {
Callsite.dispatch(state.receivers, bh);
}
+ @Benchmark
+ public void dispatch_8_megamorphic_groovyCS(MegamorphicState state,
Blackhole bh) {
+ Callsite.dispatchCS(state.receivers, bh);
+ }
+
@Benchmark
public void dispatch_8_megamorphic_java(MegamorphicState state, Blackhole
bh) {
JavaDispatch.dispatch(state.receivers, bh);