Modifying the JVM to have a more deterministic garbage collection model
Christian Thalinger
twisti at complang.tuwien.ac.at
Tue Nov 4 11:45:51 UTC 2008
On Mon, 2008-11-03 at 11:10 -0500, Tony Printezis wrote:
> Hi there,
>
> How long will you have to do this and how familiar are you with
> modifying JVMs? I don't mean to put you off, but implementing an RC GC
> in HotSpot is not a trivial project. Not only you will have to implement
> the memory management part (maybe the CMS old gen will be a good start
> for this, given that it doesn't compact like all other GCs and RC
> typically requires a non-moving space), but also you will have to modify
> the JVM / interpreter / JIT to change the barriers to maintain the
> reference counts. Modifying the JIT will be tricky (C1, the client JIT,
> will be easier; C2, the server JIT, will be much harded). So, maybe, you
> could do this by turning off the JIT and run interpreter-only. Look at
> the oop_store* methods in oop.hpp to see how to change the barriers in
> the JVM (but I think you'll still need to modify the interpreter).
My advice would be to use a simpler JVM than HotSpot. You should
probably have a look at JamVM[1]. You could also try CACAO[2] or
Kaffe[3], but I think JamVM will be the easiest one.
[1] http://jamvm.sourceforge.net/
[2] http://www.cacaovm.org/
[3] http://www.kaffe.org/
- Christian
More information about the hotspot-gc-dev
mailing list