Comment 6 for bug 936304

Revision history for this message
Nikodemus Siivola (nikodemus) wrote :

commit 6b1b11a6c51e1c29aee947f1fde7f91651ca3763
Author: Nikodemus Siivola <email address hidden>
Date: Sat Mar 31 00:56:44 2012 +0300

    gencgc: reclaim space more aggressively

     * When considering auto_gc_trigger, take the number of bytes about to be
       allocated into account.

     * If bytes_consed_between_gcs is more than the amount of free heap, set next
       GC to occur when half of the remaining free heap has been consumed.

     * Keep track of the size of the largest object allocated between two GCs.
       When collecting garbage, if there isn't enough space to allocate at least
       two such objects before collecting the last generation due a collection,
       extend the collection by one extra generation.

       This works around our tendency to immediately promote large objects to
       generation 1, due to auto_gc_trigger causing a GC _after_ the allocation.

     Fixes lp#936304.