Hi Everyone,

This performance issue was recently brought up as a Grails ticket
(https://github.com/apache/grails-core/issues/15293).  We haven't
switched to Groovy 5 yet, but it would be nice if we could improve the
performance prior to switching.  Was any progress ever made on this
thread?  @Jochen & @Miles?

The user was kind enough to include a test application with Grails 7
to help research these performance issues.  From their research they
indicated the slow downs were mostly in Groovy code.  Unfortunately,
the application is for Groovy 4 since Grails isn't on Groovy 5 yet.
(We still don't have Groovy 5 compiling with Grails and are gradually
opening tickets / working on these as we can in this PR chain
https://github.com/apache/grails-core/pull/15183).

-James

On Thu, Aug 21, 2025 at 11:55 AM MG <[email protected]> wrote:
>
> Hi Jochen,
>
> since, as I said, we could not pinpoint any specific, smaller piece of code 
> that exhibits the problem, we can alas not supply a test case.
> But if you guys want to try out this 80% (?) quick fix solution, I can offer 
> to test it with our framework, as soon as we have successfully switched to 
> Groovy 5.
>
> Cheers,
> mg
>
>
> Am 14.08.2025 um 09:38 schrieb Jochen Theodorou:
>
> That would be very much appreciated. My problem is a bit the "where to start 
> while having something real life testable"
>
> and maybe something like
>
> callsite.paths = [SLOW_PATH_0, current logic]
> callsite.counter = 0
>
> callsite target = {
>   if (counter < THRESHOLD) {
>     increase counter
>     continue with paths[0]
>   } else {
>     continue with paths[1]
>   }
> }
>
> as a first step would already help a bit and would be near the final solution 
> I drafted in my mail as well
>
> bye Jochen
>
> On 13.08.25 22:11, Milles, Eric (TR Technology) via dev wrote:
>
> I have been following the discussion.  Jochen, if you want to work together 
> on a prototype for this, I can surely help.
>
> ------------------------------------------------------------------------
> *From:* Jochen Theodorou <[email protected]>
> *Sent:* Wednesday, August 13, 2025 2:28 PM
> *To:* [email protected] <[email protected]>
> *Subject:* [EXT] Re: Groovy 5 - Performance / @CompileStatic
> External Email: Use caution with links and attachments.
>
> On 10.08.25 22:59, MG wrote:
> [...]
>
>   3. But, most importantly, as Jochen stated in his last reply: "Yes, in
>      the end MethodHandles are faster, but only once optimizations have
>      run. /And that takes thousands of iterations/. MG for example has
>      been hit by this."
>       1. So he thinks he already knows what causes the performance
>          degradation when using Groovy indy, and already points out some
>          way(s) to improve this (independent of the specifics our project)...
>
>
> I think it is the cost of initialization. We have to keep that much
> lower than we do right now. Sadly you are the only reacting to that mail
> so far. I thought I kept it simple enough...
>
> bye Jochen
>
>
>

Reply via email to