[LLVMdev] Proposal for a Google summer of code project for the Java frontend.

Joachim Durchholz jo at durchholz.org
Tue Mar 18 09:09:35 PDT 2008

Am Dienstag, den 18.03.2008, 15:31 +0100 schrieb Ramón García:
> The memory consumed by the code compiled is huge in server applications.

Do you have statistics about the relative footprints of code and various
kinds of objects in such a server application?
I know they have huge footprints (a general problem with Java
applications, I think), but I never got a useful breakdown along the
lines of what's responsible for that.

>  And
> it is not shared by different virtual machine instances. By contrast,
> shared libraries
> are memory mapped, therefore they are shared between different instances of the
> executables using them. It is posible to throw away code after using
> it, but then
> compilation cost would be repeated.

It would suffice to store a hash of the compiled code. That way, when
the same class somes along, you can reuse existing compiled code.

You'd want to keep the intermediate code if you try global optimizations
like monomorphisation (i.e. finding out those parameters and variables
that are never assigned to polymorphically - loading another class can
invalidate assumptions, so you may have to redo at least parts of the

> And dynamic compilation prevents expensive optimization techniques.

Well, then a hash should really be sufficient :-)


More information about the llvm-dev mailing list