[gclist] write barrier via VM traps

Charles Fiterman cef@geodesic.com
Tue, 27 May 1997 09:40:52 -0500

I don't think much of these methods any more because we are 
getting such good results with pseudo incremental mode and
footprint reduce.

In pseudo incremental mode the user has an isIdle function
which returns non 0 if the program is idle by his definition.
The default being key press or mouse click makes the system 
non idle.

When the user detects idle state he calls the 
gcAttemptCollection() which starts collecting and calls
isIdle() at strategic points. In the real world all most
all collects finish.

Footprint reduce means the collector hands back pages not
used for some number of cycles. 

If the user runs out of space and is using gcAttemptCollection
and footprint reduce the allocator should always get more
space from the operating system. At some later idle state
footprint reduce will simply hand it back.

All this is very low overhead compared to the things done
in incremental mode, especially where it is done by VM traps.
More important the work is shifted to idle time.

Charles Fiterman		Geodesic Systems
414 North Orleans Suite 410	Phone 312 832 1221 x223
Chicago IL 60610-4418		FAX   312 832 1230

A computer language without garbage collection
  is like a city without garbage collection.