Background
Groovy has a performance problem, compared with Java, due to its dynamic nature, while there are several requests for performance improvement.
Proposed Solution
Implementing just-in-time compiler is a proper way to help boosting performance of Groovy. It would be great to have a Groovy module (in this case a JVMTI agent) to help re-compiling Groovy classes during runtime.
Implementation
GIT is a profiling-based just-in-time compiler for Groovy. It is able to perform data flow analysis for Groovy-compiled classes and re-define specialised version of them at run-time.
This is an experimental release. GIT 0.3 is in its alpha-stage, and not yet ready for production use.
The binary is also available here: git-all-0.3.jar
The early version of GIT is located at http://svn.codehaus.org/grails-plugins/grails-aop/trunk/MAIN/agent/
Usage
Add
to your Java command line to use GIT.
Known Bugs
- GIT's optimiser thread will not stop by itself. You have to kill the process manually.