On Nov 19, 10:03 pm, Jon Harrop <[email protected]> wrote: > On Friday 20 November 2009 02:30:13 Daniel Hicks wrote: > > > On Nov 16, 7:33 pm, Jon Harrop <[email protected]> wrote: > > > I see allocation as contention because the heap is a global shared > > > resource. If you want to recover the performance of the previous > > > generation of standalone languages with GCs optimized for rapid recycling > > > on a single thread (e.g. OCaml) then you need to reimplement a mini-heap > > > local to your thread and that is left up to the user on VMs like the JVM > > > and CLR. > > > I don't know of any JVM that doesn't implement a thread-local heap, at > > least in the "server" implementations. > > You mean a thread-local first generation, not a thread local heap.
The two most critical factors are having a lock-free allocation protocol, and maintaining cache locality for relatively "new" objects. Sun's algorithms do both of these fairly well, and there are other algorithms in use that probably do them better. True local heaps with read barriers to "promote" objects to global when globally referenced have been implemented experimentally, but I don't think there are any practical implementations. -- You received this message because you are subscribed to the Google Groups "JVM Languages" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/jvm-languages?hl=.
