[cmucl-imp] maybe-finish-mapping in map-allocated-objects must be inline

Helmut Eller heller at common-lisp.net
Thu Aug 18 10:26:20 CEST 2011


The local function MAYBE-FINISH-MAPPING in MAP-ALLOCATED-OBJECTS must be
inlined otherwise the CURRENT pointer is boxed and moved into a value
cell for every object.  That boxing allocates something like 1MB of saps
when (room t) is called with an almost empty heap and much more for if
there is something on the heap.

There's also a unused variable TESTED.  It looks like some parts were
written by a drunk :-)

Helmut


--- a/code/room.lisp
+++ b/code/room.lisp
@@ -368,7 +368,7 @@
 			 (fixnum (sap+ current size))
 			 (memory-size (sap+ current size)))))
 		(setf current c))))
-	 (declare (inline next))
+	 (declare (inline next maybe-finish-mapping))
 	 (loop
 	    (maybe-finish-mapping)
 	    (maybe-skip-page)




More information about the cmucl-imp mailing list