groovy-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jochen Theodorou <>
Subject Re: About the compiler optimization of Groovy
Date Tue, 11 Oct 2016 08:21:15 GMT

On 11.10.2016 06:14, 孙 岚 wrote:
> Hi dev list,
>       Are there any compiler optimizations in Groovy? e.g. Tail
> Recursion, Loop Unrolling, etc.
>       If no compiler optimizations done, how about providing some AST
> Transformation or even adding a compilation phase named optimization?
> The optimization phase does nothing for now, but we can implement some
> plugin mechanism to load optimization plugin dynamically.

Tail recursion: see TailRecursive. But I don't see this as an optimization

As for loop unrolling and such... since we have a JIT, I would not do 
the classic optimizations like loop unrolling. You could say that all 
the static compiler does are optimizations to some extend. But in 
general we would have to discuss each and every optimization if it makes 
a difference or if their nature is having bad side effects.

One optimization I could think of is for example:

String s = "sad$sdq"

instead of first creating a GString and then cast it to String, we could 
instead produce the String right away. A variation would for example be 
a method returning String but you use a GString to produce the string. 
And with a little bit of flow analysis we could even optimize

def s = "sad$sdq"

in some cases. A new phase would probably be a breaking change, so I 
don't know about that. As for a plugin mechanism... not global transforms?

bye Jochen

View raw message