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