jamesfredley commented on issue #15293:
URL: https://github.com/apache/grails-core/issues/15293#issuecomment-3704230195

   I see similar performance levels when optimizing the Grails 7 test 
application with `-Dgroovy.indy.optimize.threshold=0 
-Dgroovy.indy.fallback.threshold=0` and `optimizationOptions.indy = false`.  In 
my testing Java 25 provides ~23% performance improvement over Java 17, but not 
enough to resolve the 4x performance hit by itself.  `optimizationOptions.indy 
= false` was ~6.5x faster than without any optimization on Java 25
   
   
   To help with further debugging I ran with `-Dgroovy.indy.logging=true 
-Dgroovy.indy.debug=true` and without the other optimizations.  Additionally I 
updated `spring-logback.xml` to log to a file at Log level INFO.  This 
generates >500MB of logs during application startup and the initial loading of 
data.  
   
   Here are two 100MB compressed logs and hopefully these can help. `call site 
stays uncached` appears throughout both files.
   
   ```
   2026-01-01T17:47:11.376-05:00  INFO 6648 --- [http-nio-8080-exec-1] 
o.c.groovy.vmplugin.v8.IndyInterface     : meta class is 
groovy.lang.MetaClassImpl@1bbaf0d3[class grails7.performance.Task]
   2026-01-01T17:47:11.376-05:00  INFO 6648 --- [http-nio-8080-exec-1] 
o.c.groovy.vmplugin.v8.IndyInterface     : selection base set to class 
grails7.performance.Task
   2026-01-01T17:47:11.376-05:00  INFO 6648 --- [http-nio-8080-exec-1] 
o.c.groovy.vmplugin.v8.IndyInterface     : meta class is a recognized 
MetaClassImpl
   2026-01-01T17:47:11.376-05:00  INFO 6648 --- [http-nio-8080-exec-1] 
o.c.groovy.vmplugin.v8.IndyInterface     : meta method is category type method: 
false
   2026-01-01T17:47:11.376-05:00  INFO 6648 --- [http-nio-8080-exec-1] 
o.c.groovy.vmplugin.v8.IndyInterface     : meta method is static category type 
method: false
   2026-01-01T17:47:11.376-05:00  INFO 6648 --- [http-nio-8080-exec-1] 
o.c.groovy.vmplugin.v8.IndyInterface     : meta method is CachedMethod instance
   2026-01-01T17:47:11.376-05:00  INFO 6648 --- [http-nio-8080-exec-1] 
o.c.groovy.vmplugin.v8.IndyInterface     : successfully unreflected method
   2026-01-01T17:47:11.377-05:00  INFO 6648 --- [http-nio-8080-exec-1] 
o.c.groovy.vmplugin.v8.IndyInterface     : casting explicit from (Task)String 
to (Object)Object
   2026-01-01T17:47:11.377-05:00  INFO 6648 --- [http-nio-8080-exec-1] 
o.c.groovy.vmplugin.v8.IndyInterface     : added GroovyRuntimeException 
unwrapper
   2026-01-01T17:47:11.377-05:00  INFO 6648 --- [http-nio-8080-exec-1] 
o.c.groovy.vmplugin.v8.IndyInterface     : added meta class equality check
   2026-01-01T17:47:11.377-05:00  INFO 6648 --- [http-nio-8080-exec-1] 
o.c.groovy.vmplugin.v8.IndyInterface     : added switch point guard
   2026-01-01T17:47:11.377-05:00  INFO 6648 --- [http-nio-8080-exec-1] 
o.c.groovy.vmplugin.v8.IndyInterface     : added same-class argument check
   2026-01-01T17:47:11.377-05:00  INFO 6648 --- [http-nio-8080-exec-1] 
o.c.groovy.vmplugin.v8.IndyInterface     : call site stays uncached
   2026-01-01T17:47:11.377-05:00  INFO 6648 --- [http-nio-8080-exec-1] 
o.c.groovy.vmplugin.v8.IndyInterface     : 
----------------------------------------------------
                invocation of method 'status'
                invocation type: GET
                sender: class 
grails7.performance.PerformanceTestService$_getProjectMetrics_closure12$_closure59
                targetType: (Object)Object
                safe navigation: false
                thisCall: false
                spreadCall: false
                with 1 arguments
                        argument[0] = grails7.performance.Task@352260d
   
   ```
   
   During application startup and initial data loading: 
[performance-test-app.log.2026-01-01.0.gz](https://github.com/user-attachments/files/24403283/performance-test-app.log.2026-01-01.0.gz)
   
   While running `localhost:8080/performanceTest/benchmark?pretty=true`: 
[performance-test-app.log.2026-01-01.10.gz](https://github.com/user-attachments/files/24403284/performance-test-app.log.2026-01-01.10.gz)
   
   When you run with with `-Dgroovy.indy.logging=true -Dgroovy.indy.debug=true 
-Dgroovy.indy.optimize.threshold=0 -Dgroovy.indy.fallback.threshold=0` you see 
the following during startup and initial data loading
   
   
   ```
   2026-01-01T18:23:52.866-05:00  INFO 42964 --- [main] 
o.c.groovy.vmplugin.v8.IndyInterface     : added meta class equality check
   2026-01-01T18:23:52.866-05:00  INFO 42964 --- [main] 
o.c.groovy.vmplugin.v8.IndyInterface     : added switch point guard
   2026-01-01T18:23:52.866-05:00  INFO 42964 --- [main] 
o.c.groovy.vmplugin.v8.IndyInterface     : added same-class argument check
   2026-01-01T18:23:52.866-05:00  INFO 42964 --- [main] 
o.c.groovy.vmplugin.v8.IndyInterface     : call site stays uncached
   2026-01-01T18:23:52.866-05:00  INFO 42964 --- [main] 
o.c.groovy.vmplugin.v8.IndyInterface     : call site target reset to default, 
preparing outside invocation
   2026-01-01T18:23:52.867-05:00  INFO 42964 --- [main] 
o.c.groovy.vmplugin.v8.IndyInterface     : call site target set, preparing 
outside invocation
   2026-01-01T18:23:52.867-05:00  INFO 42964 --- [main] 
o.c.groovy.vmplugin.v8.IndyInterface     : call site target set, preparing 
outside invocation
   2026-01-01T18:23:52.867-05:00  INFO 42964 --- [main] 
o.c.groovy.vmplugin.v8.IndyInterface     : call site target set, preparing 
outside invocation
   2026-01-01T18:23:52.867-05:00  INFO 42964 --- [main] 
o.c.groovy.vmplugin.v8.IndyInterface     : call site target set, preparing 
outside invocation
   2026-01-01T18:23:52.867-05:00  INFO 42964 --- [main] 
o.c.groovy.vmplugin.v8.IndyInterface     : 
----------------------------------------------------
                invocation of method ''
                invocation type: CAST
                sender: class org.codehaus.groovy.vmplugin.v8.Selector
                targetType: (Object)DirtyCheckable
                safe navigation: false
                thisCall: false
                spreadCall: false
                with 1 arguments
                        argument[0] = grails7.performance.Project@28a44bb8
   ```
   
   
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to