[Minor] [minor commit] r684 - trunk/doc

jimb at red-bean.com jimb at red-bean.com
Thu Mar 15 09:49:10 CDT 2007


Author: jimb
Date: Thu Mar 15 09:49:09 2007
New Revision: 684

Log:
Move Mark Reinhold's thesis to "read" pile, and add some notes.


Modified:
   trunk/doc/design

Modified: trunk/doc/design
==============================================================================
--- trunk/doc/design	(original)
+++ trunk/doc/design	Thu Mar 15 09:49:09 2007
@@ -654,10 +654,6 @@
 
 ** Yet to be read, or needing re-reading:
 
-Mark Reinhold.  Cache Performance of Garbage-Collected Programming Languages.
-Ph.D. dissertation, MIT, September 1993.  MIT LCS Technical Report 581.
-http://www.lcs.mit.edu/publications/specpub.php?id=1140
-
 http://java.sun.com/javase/technologies/hotspot/gc/memorymanagement_whitepaper.pdf
     From Sun's Java presentation at FOSDEM 2007.
 
@@ -769,6 +765,37 @@
 
 ** Read:
 
+Mark Reinhold.  Cache Performance of Garbage-Collected Programming Languages.
+Ph.D. dissertation, MIT, September 1993.  MIT LCS Technical Report 581.
+http://www.lcs.mit.edu/publications/specpub.php?id=1140
+
+    An amazingly wonderful thesis of which you need read only the
+    introduction, or maybe to page 9 or 12.  Basically, if you run a
+    Scheme program with no garbage collection at all, using completely
+    new memory at every allocation, you get extremely cache-friendly
+    behavior, given the way modern caches are designed.  So, for
+    example, running the collector frequently enough that the nursery
+    generation fits entirely in cache almost certainly hurts
+    performance, rather than improving it; even if your nursery is
+    infinite, typical Scheme programs will make effective use of the
+    cache.
+
+    I think what this means is that you want to make your nursery as
+    large as possible, as long as it still fits in physical RAM (if
+    the time to access physical memory is compared to the distance
+    from your chair to the bookshelf, then the time required for a
+    single hard drive seek will get you into the next state.)
+
+    This is a bit reminiscent of the way Linux fills up your memory
+    keeping disk contents in the buffer cache: free memory is wasted
+    memory.
+
+    I think this thesis also means that a copying collector should try
+    to leave to-space looking the way from-space did, except without
+    the garbage.  So spending a little complexity to put lists in
+    allocation order, as opposed to breadth-first order, would
+    probably be good.
+
 Olin Shivers.  Control-Flow Analysis of Higher-Order Languages.
 Ph.D. dissertation, Carnegie Mellon University, May 1991.
 Technical Report CMU-CS-91-145, School of Computer Science.



More information about the Minor mailing list