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);

Reply via email to