This is an automated email from the ASF dual-hosted git repository.
github-actions[bot] pushed a commit to branch gh-pages
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/gh-pages by this push:
new 35d15b2a8c add Benchmark (jmh) benchmark result for
aa30a6906577f66a707a6522ca67d7a233117b80
35d15b2a8c is described below
commit 35d15b2a8c8a5dc03373ceac2d028335aae9cc74
Author: github-action-benchmark <[email protected]>
AuthorDate: Thu Jul 9 07:45:03 2026 +0000
add Benchmark (jmh) benchmark result for
aa30a6906577f66a707a6522ca67d7a233117b80
---
dev/bench/jmh/grails-ez/classic/data.js | 306 +++++++++++++++++++++++++++++++-
1 file changed, 305 insertions(+), 1 deletion(-)
diff --git a/dev/bench/jmh/grails-ez/classic/data.js
b/dev/bench/jmh/grails-ez/classic/data.js
index 2f3155acdc..ff6188e58e 100644
--- a/dev/bench/jmh/grails-ez/classic/data.js
+++ b/dev/bench/jmh/grails-ez/classic/data.js
@@ -1,5 +1,5 @@
window.BENCHMARK_DATA = {
- "lastUpdate": 1783495356972,
+ "lastUpdate": 1783583103473,
"repoUrl": "https://github.com/apache/groovy",
"entries": {
"Benchmark": [
@@ -17520,6 +17520,310 @@ window.BENCHMARK_DATA = {
"extra": "iterations: 5\nforks: 2\nthreads: 1"
}
]
+ },
+ {
+ "commit": {
+ "author": {
+ "name": "Paul King",
+ "username": "paulk-asert",
+ "email": "[email protected]"
+ },
+ "committer": {
+ "name": "Paul King",
+ "username": "paulk-asert",
+ "email": "[email protected]"
+ },
+ "id": "aa30a6906577f66a707a6522ca67d7a233117b80",
+ "message": "Close per-test GroovyClassLoader in contracts
BaseTestClass\n\nBaseTestClass created a GroovyClassLoader in @BeforeEach but
never closed it,\nso every contracts test that extended it leaked a loader. Add
an @AfterEach\nthat closes the loader, mirroring StubTestCase.",
+ "timestamp": "2026-07-09T03:36:46Z",
+ "url":
"https://github.com/apache/groovy/commit/aa30a6906577f66a707a6522ca67d7a233117b80"
+ },
+ "date": 1783583101392,
+ "tool": "jmh",
+ "benches": [
+ {
+ "name":
"org.apache.groovy.perf.grails.GrailsLikePatternsBench.configurationDsl",
+ "value": 394.1031786533333,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.GrailsLikePatternsBench.controllerActionDuringMetaclassChurn",
+ "value": 333.4897882071428,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.GrailsLikePatternsBench.controllerActionPattern",
+ "value": 312.68835874285713,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.GrailsLikePatternsBench.domainValidationCycle",
+ "value": 127.39151688125,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.GrailsLikePatternsBench.dynamicPropertyByName",
+ "value": 39.121175056998894,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.GrailsLikePatternsBench.dynamicPropertyDuringMetaclassChurn",
+ "value": 41.81721737895408,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.GrailsLikePatternsBench.fullRequestCycleDuringMetaclassChurn",
+ "value": 79.90053427061538,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.GrailsLikePatternsBench.fullRequestCycleSimulation",
+ "value": 97.96834651428571,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.GrailsLikePatternsBench.markupBuilderPattern",
+ "value": 219.71434452666668,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.GrailsLikePatternsBench.serviceChainCreateAndList",
+ "value": 219.28571836555557,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.GrailsLikePatternsBench.serviceChainWithCollections",
+ "value": 35.414339988286386,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.GrailsWorkloadBench.baselineCollectionClosureChain",
+ "value": 231.3564454444444,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.GrailsWorkloadBench.baselineDynamicPropertyByName",
+ "value": 18.05948837452753,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.GrailsWorkloadBench.baselineFullAnalysis",
+ "value": 0.051815387471638844,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.GrailsWorkloadBench.baselineGStringInterpolation",
+ "value": 7.481402824074682,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.GrailsWorkloadBench.baselineNestedClosureDelegation",
+ "value": 41.37883161960034,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.GrailsWorkloadBench.baselineProjectMetrics",
+ "value": 17.057106906344664,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.GrailsWorkloadBench.baselineSpreadOperator",
+ "value": 309.7387896,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.GrailsWorkloadBench.collectionClosureChainWithInvalidation",
+ "value": 242.1827058111111,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.GrailsWorkloadBench.dynamicPropertyByNameWithInvalidation",
+ "value": 25.1382652988506,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.GrailsWorkloadBench.fullAnalysisWithInvalidation",
+ "value": 0.06003188560718477,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.GrailsWorkloadBench.gstringInterpolationWithInvalidation",
+ "value": 9.393972292956295,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.GrailsWorkloadBench.nestedClosureDelegationWithInvalidation",
+ "value": 42.08923122620857,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.GrailsWorkloadBench.projectMetricsWithInvalidation",
+ "value": 18.78010432160014,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.GrailsWorkloadBench.spreadOperatorWithInvalidation",
+ "value": 269.9035642746032,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.HostCalibrationBench.allocationChurn",
+ "value": 55.930537123707715,
+ "unit": "us/op",
+ "extra": "iterations: 3\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.HostCalibrationBench.cpuIntegerOps",
+ "value": 373.9938331364744,
+ "unit": "us/op",
+ "extra": "iterations: 3\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.HostCalibrationBench.memoryPointerChase",
+ "value": 997.8086106340742,
+ "unit": "us/op",
+ "extra": "iterations: 3\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.MetaclassChangeBench.baselineClosureDispatchNoChanges",
+ "value": 4.139843053507381,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.MetaclassChangeBench.baselineMultiClassNoChanges",
+ "value": 3.7527840712808342,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.MetaclassChangeBench.baselineNoMetaclassChanges",
+ "value": 1.067579900688544,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.MetaclassChangeBench.baselinePropertyAccessNoChanges",
+ "value": 16.256972682091423,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.MetaclassChangeBench.burstThenSteadyState",
+ "value": 1.7481959080627276,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.MetaclassChangeBench.closureDispatchDuringMetaclassChurn",
+ "value": 14.32953525679809,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.MetaclassChangeBench.expandoMethodAddition",
+ "value": 11.29716722276668,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.MetaclassChangeBench.frequentExpandoChanges",
+ "value": 14.313924522351922,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.MetaclassChangeBench.metaclassReplacement",
+ "value": 5.150337165712145,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.MetaclassChangeBench.multiClassMetaclassChurn",
+ "value": 34.60811989888954,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.MetaclassChangeBench.propertyAccessDuringMetaclassChurn",
+ "value": 30.265040294518847,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.MetaclassVariationBench.baselineMultiClassNoStartup",
+ "value": 11.073896557069354,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.MetaclassVariationBench.baselineSharedMetaclass",
+ "value": 8.321733211029464,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.MetaclassVariationBench.dynamicFinderCalls",
+ "value": 7.2866462408727815,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.MetaclassVariationBench.mixedCompiledAndDynamicFinders",
+ "value": 6.366320095524765,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.MetaclassVariationBench.multiClassStartupThenSteadyState",
+ "value": 14.149483391400931,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.MetaclassVariationBench.perInstanceInjectedMethodCalls",
+ "value": 53.082197442469976,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.MetaclassVariationBench.perInstanceMetaclass",
+ "value": 20.448115136025415,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ },
+ {
+ "name":
"org.apache.groovy.perf.grails.MetaclassVariationBench.perInstanceWithOngoingChurn",
+ "value": 42.78020000851063,
+ "unit": "ms/op",
+ "extra": "iterations: 5\nforks: 2\nthreads: 1"
+ }
+ ]
}
]
}