[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