Latest version of Groovy++ (v 0.2.19) is based on Groovy
1.7.5-snapshot, which means it is fully compatible with Grails 1.3.4.
I even managed to write some tests and see noticeable (3-4 times)
performance gain. BTW, this is achieved in mixed mode (vs. strictly
statically typed) so all beauty of Grails dynamic methods are still in
place.
Here is what need to be done if you wish to run your our tests:
- download Groovy++ at http://code.google.com/p/groovypptest/downloads/list
- replace in your grails 1.3.4 installation file
/lib/groovy-all-1.7.4.jar with file /embeddable/groovypp-0.2.19.jar
from Groovy++
- replace in grails installation reference to groovy-all-1.7.4.jar in
file /bin/startGrails(.bat) by reference to groovypp-0.2.19.jar
- replace in grails installation reference to groovy-all-1.7.4.jar in
file /conf/groovy-starter.conf by reference to groovypp-0.2.19.jar
- annotate some classes or methods with @Typed(TypePolicy.MIXED)
Please report your success or problems at Groovy++ Google Group -
http://groups.google.com/group/groovyplusplus
Enjoy,
Alex
Regarding writing static code with Java I disagree. Main point for me
to create G++ was to have language which would be convenient and
non-verbose. I write a lot last months on G++ and can tell that it is
huge productivity boost compare to plain Java. Performance here is one
of requirements but not main goal.
Microbenchmarking is never truth but almost always good indication of
general trend and ground for expectations.
On Sun, Aug 15, 2010 at 2:41 PM, Stephane Maldini <smal...@doc4web.com> wrote:
> Hi Alex,
> I will give a try ASAP, it seems promising. But here some thoughts ($0.02):
>
>
> Usual remark : Name is confusing, people could be tempted to believe Groovy
> vanilla does not fit their needs as Groovy++ - Vote for a new name sounds
> cool (as tried before if I remember correctly).
> Usual remark (bis) : Groovy beauty is about dynamic, Mixed Mode is cool and
> deserves attention but if I would want to write static code I will go for
> Java.
> In fact today, in my experience, Grails applications are just the front for
> underlying java libraries or some middlewares.
> Beating microbenchmarks is the Java work, even if Groovy 1.8 will be about
> performing this part aswell
> I will certainly try this cool stuff for some Http push applications (using
> ICEpush not cometD) as your results on this topic seem very promising.
>
> Cheers
>> ---------------------------------------------------------------------
>> To unsubscribe from this list, please visit:
>>
>> http://xircles.codehaus.org/manage_email
>>
>>
>
>
>
> --
> Stéphane MALDINI
> doc4web consultant
> smal...@doc4web.com
> --
> http://fr.linkedin.com/in/smaldini
>
On Sun, Aug 15, 2010 at 2:57 PM, Tomas Lin <toma...@gmail.com> wrote:
> This is quite exciting.
>
> Are there some guidelines to which areas in a grails application (
> i.e. domain objects, services, controllers, views, etc ) might benefit
> most from a g++ optimisation?
>
> Would it be possible to see an example of this, for example, having an
> annotated Petclinic application?
But I want to reiterate that performance is only one of topics in
agenda of Groovy++. Static compilation (compile time errors vs runtime
errors) is another extremely important one.
On Sun, Aug 15, 2010 at 3:18 PM, Sebastian Hohns <seb...@gmx.de> wrote:
>
> thank you for your work. Doesn't target this the same problems already solved
> with all this invokedynamic (was it JSR-292???) stuff coming with Java7? Do
> you expect (or did you already do some benchmarking) further significant
> performance improvements with G++ vs. a v7 JVM? I didn't do any research
> about this because we are very pleased with the current grails performance,
> but at the first glance it seems like there will be some overlapping between
> both.
> --
> View this message in context: http://grails.1312388.n4.nabble.com/G-with-Grails-tp2325786p2325881.html
> Sent from the Grails - user mailing list archive at Nabble.com.
With a) it seems to be bug in the compiler. I amafraid to fix it I
need minimal possible piece of code, which reproduce the problem. I
will do my best to fix asap.
.
What it does is interesting trick - compiler try to compile statically
as much as it can but for the rest use dynamic calls.