Posted on 23 April, 2012 (1 year ago)
Last week saw the first edition of Devoxx France
. And what a success it was! The conference was sold out at 1200 persons. There was a great wealth of interesting topics and many passionate attendees to talk to. Overall, I come back home impressed that the first edition worked out so well, flawlessly, and was such a joy to attend. So a big thank you and congrats to all those involved in making Devoxx France such a great event!
Along with Cédric Champeau
, I had the pleasure to present the novelties of Groovy 2.0
(and a bit of retrospective on some of the key features of Groovy 1.8). We covered quickly the invoke dynamic support
, and went into more depth into the static type checking
and static compilation
What was also interesting was to update my informal benchmarks which looked at the performance of Groovy in a certain number of situations:
- without particular improvements (ie Groovy 1.7 and before),
- with the primitive optimizations (Groovy 1.8),
- and with static compilation.
The results are pretty good and show that in static compilation mode, Groovy's performance is as good as Java in most cases. There are still some improvements we can make, some bytecode to clean up, some bugs to iron out, etc, but overall, the goal of attaining Java's performance is reached.
For my benchmark, I took some Java implementations of the Fibonaci suite, the calculation of Pi (quadrature style), and a binary tree implementation. I converted them to Groovy (often, it's just a file extension rename, plus removing some semicolons for good measure), without really trying to optimize them in a Groovy manner. And the results I got looked as follows:
|Groovy with static compilation
|Groovy with primitive optimizations
|Groovy without optimizations
So that's pretty good news for those who are looking for performance, and more generally it'll benefit anyone as well in any case.