Using libgcj with different memory management library.
Mon Jun 8 09:09:00 GMT 2009
abhishek desai wrote:
> 1. As per my understanding libgcj uses boehm garbage collector for
> memory allocations. Are there any allocations in libgcj which are
> not routed to the garbage collector ? specially the parts of the
> library written in C++. From what I understand is that the memory
> allocated with the 'new' operator are routed to the gc .
Not exactly. If you have a Java class, i.e. one which inherits from
java.lang.Object, then its new uses the GC.
> Is it necessary that the class of object being allocated should be
> derived from the 'object' class for it to be allocated on the gc ?
> or all the allocations with new get routed to gc ?
Yes, it is. Of course, you can always overload new in your own classes
to use the Boehm gc, evernif they don't derive from Object. You'll
have to make sure they're marked correctly, though.
> 2. I have a memory manager which allocates memory from a specific
> memory pool. I want to port boehm gc to use this memory manager for
> its allocations.
I don't understand how this can work. The gc is a memory manager; how
can it use some other memory manager to do its own work? You'll have
to explain a little more.
> Can someone give me some pointers as to where I can make the
> necessary modifications ? I can see the gcconfig.h and os_dep.c is
> the file containing the final system memory allocation calls. Is
> there some other place I need to look at ? Are there any tricky
> issues I need to look at while doing the porting ?
You'll need to the gc just to scan your memory pool, or also manage
it? Doing the latter will be hard, the former easy.
More information about the Java