I was talking about a specific case and without primitive optimizations.

On 1/18/26 22:54, MG wrote:
@And for the long run the performance is actually comparable:

 1. I want to reiterate that this is /not /what we observered in any of
    the real world cases we used as benchmarks.
 2. While performance typically improved slightly with more iterations,
    this never led to a convergence towards the same runtime behavior.
 3. In addition for many real life use cases it would not matter/help
    even if performance became identical between INDY & non-INDY after,
    say 1000 or 10000 calls, because this is not a threshold ever
    reached in practice, since we e.g. auto restart our application each
    night.
 4. Imho therefore performance would need to be fixed in a way that
    works from the first call, not only at any point in the future...

Cheers,
mg

Am 18.01.2026 um 06:23 schrieb Jochen Theodorou:


On 1/17/26 21:36, Дилян Палаузов wrote:
Hello,

I do not think that this is going to make progress, until somebody shares a minimal example, which has performance differences between INDY and classic bytecode generation. That is: .groovy files, build environment and instructions how to run the files to notice significant performance difference.


That in itself is actually not so difficult. See GROOVY-11842 for example. While the issue itself is about something being in the callstack, that should not be there, I there also talk about how Groovy 3 with and without primitive optimizations performs here in the first few iterations. And for the long run the performance is actually comparable.

File:

int foo(){1}

int a
long t1,t2
O_MAX = 1000
long[] ts = new long[O_MAX]
for (int o=0; o<O_MAX; o++) {
  t1 = System.nanoTime()
  for (int i=0; i<10_000; i++) {
    a=foo()
  }
  t2 = System.nanoTime()
  ts[o] = t2-t1
}

def f = new File("out.txt")
for (int i =0; i<O_MAX; i++) {
 f << i +": " + ts[i] + "\n"
}
println "done"


Environment: just java command line with GroovyMain or groovy command.

But what does it actually say? And is this really relevant in a big application? Those are difficult to answer.

And that is your whole point I assume. it needs simple enough to actually get what you test, but complex enough to be relevant for the application. This one here surely is not

bye Jochen





Reply via email to