18 Aug
2011
18 Aug
'11
8:26 a.m.
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)