guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

lazy sweeping.


From: Han-Wen
Subject: lazy sweeping.
Date: Mon, 29 Jul 2002 01:32:24 +0200

Here are some results of my lazy sweeping implementation:

Java tree benchmark 

 1.7.0:  
 time ~/usr/bin/guile -s  /tmp/GCBench.scheme.txt 

   user 2m20.350s
   sys  0m0.310s


 1.7.0 + newgc + lazy sweeping
 time ./libguile/.libs/lt-guile -s /tmp/GCBench.scheme.txt

   user 2m20.120s
   sys  0m0.240s

Nothing spectacular. But now checkout ... the startup time!
(this is the time for starting guile, and then pressing ^D)

        1.7.0:  
        time ~/usr/bin/guile

        user    0m0.170s
        sys     0m0.000s


        1.7.0 + newgc + lazy sweeping  
        user    0m0.090s
        sys     0m0.010s


The lazy sweeping approximately halves the startup time of GUILE. I
consider the old GC beat; when can we start integrating this? 

  http://www.cs.uu.nl/~hanwen/public/guile/lazy-sweeping.tar.gz

Implementation notes:

 * Lazy sweeping sounds like a feature, but it actually leads to
   simpler, more natural code than the old sweeping code.

 * Various debug functions (mainly those having to do with checking
   the freelist) become moot; I removed them.

 * I removed SCM_FREECELL_P(). It's meaning has become ambiguous.

 * Lazy sweeping naturally complements multi-threaded use: whenever a
   thread runs out of free cells, we can simply sweep a few (say 512)
   cells, and return that for private use by that thread. 

 * Et ceteram censeo GUILE 1.6 releasem esse.

-- 

Han-Wen Nienhuys   |   address@hidden   |   http://www.cs.uu.nl/~hanwen 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]