Re: Garbage collection in C++
George Kettleborough <g.kettleborough@member.fsf.org> writes:
I suppose what I don't get is why you would ever want to create
objects on the stack. It's something you can't do in Java,
I just read this in ?comp.lang.java.programmer?:
John B. Matthews wrote in <nospam-20B427.16262820112008@news.motzarella.org>:
|I was pleasantly surprised by the speed of the JScience
|library, possibly due to stack-based allocation afforded
|by Javolution, on which Jscience is based. (...)
|
|<http://jscience.org/>
|<http://javolution.org/>
(End of quotation from ?comp.lang.java.programmer?.)
?Objects can be allocated on the "stack" and transparently
recycled. With Javolution , your application is busy doing
the real work not memory management (e.g. Javolution
RealtimeParser is 3-5x faster than conventional XML
parsers only because it does not waste 2/3 of the CPU
doing memory allocation/garbage collection).?
http://javolution.org/
I do not really understand how Javolution does stack
allocation for objects in Java. A hint might be:
?This implementation uses thread-local pools.
RTSJ alternative implementations could use
ScopedMemory for their stack allocations.?
http://javolution.org/api/javolution/context/StackContext.html
Also, a JVM might do ?escape analysis?: When a JVM can prove
that a reference to an object created within a block or method
can not escape this block or method, it can allocate the
object on the stack. It seems that Sun's JVM does not do this
today, but might do it in the future.
http://google.to/search?q=JVM+%22escape+analysis%22