From: pa (Patrick A. O'Donnell)

Subject: Re: Global GC performance

Date: 1996-9-4 12:25


    Date: Fri, 30 Aug 1996 14:27:42 -0700
    From: Steve Haflich <Franz.COM at smh>

       From: <clingmans-dome.ascent.com at pao> (Patrick A. O'Donnell)

	   Replacing MAPCAR with MAPC is equivalent, but requires less change to
	   your source.
	    ...  using closures can be cons-intensive ...
	   Starting in 4.3 closures are stack consed ...

       I'd also like to note that both of these operations would be most
       likely to generate short-lived objects, which the global gc would
       never see.  Since my problem is with the global gc (scavenges seem
       quick enough in general), these will not be likely to help.

    This isn't quite an accurate analysis.  Remember that ephemeral
    consing drives newspace scavenging, and objects surviving some number
    (typically 5) scavenges are tenured.  Accumulation of tenured objects
    drives global gc.

    Therefore, unnecessary ephemeral consing increases the liklihood that
    other intermediate-lived objects will become tenured and thus
    increases the frequency of global gc.

Good point.  I guess I was still in the mindset of multi-level
ephemeral gc, such that longer-lived objects don't get "tenured" just
because many short-lived objects get created and collected.  They'd
only get tenured when there were enough of them to fill the
intermediate space.

		- Pat