Patch: Bitmap descriptor GC marking

Bryce McKinlay bryce@albatross.co.nz
Sun May 7 02:12:00 GMT 2000


Here's my patch that tries to implement bitmap based GC marking. I'm
posting it in the hope that someone who knows more about the collector
than I do can figure out why it doesnt work right ;-)

The problems, as far as I can tell, are that if GC_GCJ_MALLOC() is used:

- the heap in some cases grows much bigger than usual when using arrays.

- finialization doesn't seem to work at all.

I've also attached a "GCTest" which shows the problems. A "normal"
GCTest run should look something like this:

$ ./gctest
smallArrays() : .......... 6048ms  (heap: total=18276K free=6392K)
bigArrays()   : .......... 8455ms  (heap: total=20324K free=10428K)
objArray()    : .......... 8471ms  (heap: total=22372K free=7532K)
finalization(): .......... [900000]  9522ms  (heap: total=22372K
free=5148K)

but a run using this patch looks like this:

$ ./gctest
smallArrays() : .......... 8655ms  (heap: total=18276K free=6396K)
bigArrays()   : .......... 46094ms  (heap: total=63420K free=17804K)
objArray()    : .......... 11250ms  (heap: total=63420K free=44388K)
finalization(): .......... [0]  3149ms  (heap: total=63420K free=53284K)

(the second run is slower because its a debug build. Note the heap
growth and the lack of finalization.)

I've been kicking this patch around for a while - earlier versions also
did things like change the array and vtable allocations and inline the
array allocation functions. This is an attempt to create a minimal patch
to try and isolate the problems before moving on.

regards

  [ bryce ]



More information about the Java-patches mailing list