[cmucl-cvs] [git] CMU Common Lisp tag unicode-snapshot-2009-05 created. b7939fec84e0fd2e2484bc8bdff6c07d285cd9d3

Raymond Toy rtoy at common-lisp.net
Tue Oct 11 17:31:24 UTC 2011

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMU Common Lisp".

The tag, unicode-snapshot-2009-05 has been created
        at  b7939fec84e0fd2e2484bc8bdff6c07d285cd9d3 (commit)

- Log -----------------------------------------------------------------
commit b7939fec84e0fd2e2484bc8bdff6c07d285cd9d3
Author: rtoy <rtoy>
Date:   Fri May 1 16:09:10 2009 +0000

    Add some heuristics to gc_alloc (and gc_alloc_unboxed), based on
    some suggestions from Douglas.
    Currently, if there's not enough free space left in the region, a
    large alloc is done.  Douglahs suggested increasing the threshold,
    which we have increased from 32 to PAGE_SIZE/64.
    Also, he mentioned it's a bug that we abandon the region if we have a
    large object allocate.  We now also do a large alloc if the object is
    large enough.  (The object won't get copied in the next GC, so that's
    a win.)
    Finally, we add a simple heuristic where we keep track of how many
    consecutive large allocs have been done.  If the threshold is
    exceeded, we abandon the region (wasting space) and allocate a new
    region.  This prevents spectacularly bad performance (10 times slower
    or more) on sparc when the object is small, and there's some room in
    the region but not enough for the object.  The boxed region would
    never get updated so the allocation would never be inline.
    For debugging, the consecutive alloc limit is a variable.  We also
    keep track of how many times we abandon a region.

CMU Common Lisp

More information about the cmucl-cvs mailing list