[movitz-cvs] CVS update: movitz/losp/muerte/scavenge.lisp

Frode Vatvedt Fjeld ffjeld at common-lisp.net
Tue Mar 30 08:50:13 UTC 2004


Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory common-lisp.net:/tmp/cvs-serv13258

Modified Files:
	scavenge.lisp 
Log Message:
In map-heap-words, only write back the new word if the function
changes it. Seems like an obvious way to reduce pressure on the memory
subsystem, and increased speed by about 5% on my test HW.

Date: Tue Mar 30 03:50:12 2004
Author: ffjeld

Index: movitz/losp/muerte/scavenge.lisp
diff -u movitz/losp/muerte/scavenge.lisp:1.1 movitz/losp/muerte/scavenge.lisp:1.2
--- movitz/losp/muerte/scavenge.lisp:1.1	Mon Mar 29 09:30:22 2004
+++ movitz/losp/muerte/scavenge.lisp	Tue Mar 30 03:50:12 2004
@@ -10,7 +10,7 @@
 ;;;; Author:        Frode Vatvedt Fjeld <frodef at acm.org>
 ;;;; Created at:    Mon Mar 29 14:54:08 2004
 ;;;;                
-;;;; $Id: scavenge.lisp,v 1.1 2004/03/29 14:30:22 ffjeld Exp $
+;;;; $Id: scavenge.lisp,v 1.2 2004/03/30 08:50:12 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -87,7 +87,8 @@
 	 ((typep x 'pointer)
 	  (let ((new (funcall function x)))
 	    (check-type new pointer)
-	    (setf (memref i 0 0 :lisp) new)))))))
+	    (unless (eq x new)
+	      (setf (memref i 0 0 :lisp) new))))))))
   (values))
 
 (defun map-stack-words (function start-stack-frame)





More information about the Movitz-cvs mailing list