|
From: | Dan Nicolaescu |
Subject: | Re: t and nil in pure memory? |
Date: | Sun, 15 Nov 2009 13:08:18 -0800 (PST) |
Stefan Monnier <address@hidden> writes: > I still strongly believe there's more to be gained by optimizing the > tight mark_object (recursive) Like this: #define MAYBE_MARK_OBJECT(ARG) \ do { \ Lisp_Object OBJ = ARG; \ \ if ((XTYPE (OBJ) == Lisp_Symbol)) \ { \ struct Lisp_Symbol *tptr = XSYMBOL (OBJ); \ if (!tptr->gcmarkbit) \ mark_object (OBJ); \ } \ else \ mark_object (OBJ); \ } while (0) and replace all the recursive mark_object calls with MAYBE_MARK_OBJECT ? The one testcase I tried (indenting config.h) does not benefit from this. The big problem in GC is the trashing of the memory system due to setting/resetting and reading the mark bits...
[Prev in Thread] | Current Thread | [Next in Thread] |