murthy@skuld.cs.cornell.edu (Chet Murthy) (10/29/89)
Hi. Does anybody out there know how to load into oldspace under Allegreo CL? I need to load a 24Mbyte file into Allegro, and when I try it with the vanilla GC options, utilization gets really, really bad. When I tried setting the generation-spread, which is the variable which controls how fast an object is tenured from newspace into oldspace, to 1, which is supposedly the lowest value, it didn't help a bit. Also, the oldspaces that Allegro creates are really puny - 40k words (I think) in size. I'd like to create _huge_ ones, 40Mb in size, etc. Does anyone have pointers to how to do either? I tried looking around in the Allegro manuals, including the Generational GC implementation guide, to no avail. Thanks in advance, --chet-- --chet-- murthy@cs.cornell.edu
barmar@kulla (Barry Margolin) (10/29/89)
By definition, objects can't be created in oldspace. New objects are always created in newspace. When a copying garbage collector runs, newspace is renamed to oldspace and non-garbage objects are then copied from oldspace to newspace (in the case of a real-time GC, actually to a subspace called "copyspace"). In general, a copying GC requires that you have enough VM for two copies of every non-garbage object. In some systems, the Lisp environment is broken up into "areas", and areas can be GCed individually, which may reduce the memory requirements; however, some garbage in those areas may not be reclaimed because it is referenced by garbage in the non-GCed areas (during a by-area GC, other areas are considered to contain only non-garbage). Some Lisps also have "static" areas, which are not GCed by default (such areas only have newspace). Barry Margolin, Thinking Machines Corp. barmar@think.com {uunet,harvard}!think!barmar
cox@Franz.COM (Charles A. Cox) (10/30/89)
In article <33647@cornell.UUCP> murthy@skuld.cs.cornell.edu (Chet Murthy) writes:
Hi. Does anybody out there know how to load into oldspace under
Allegreo CL?
By definition, objects are created in newspace and then, if they
survive being scavenged `generation-spread' number of times, are moved
into oldspace. The fastest way to move objects into oldspace in Franz
Inc. Allegro CL is to set this generation-spread parameter to 1 (which
I see, from the part of your note I didn't include here, is what you
did).
[...] the oldspaces that Allegro creates are really puny - 40k
words (I think) in size. I'd like to create _huge_ ones, 40Mb in
size, etc. Does anyone have pointers to how to do either? I tried
looking around in the Allegro manuals, including the Generational
GC implementation guide, to no avail.
I don't have an Allegro CL manual handy so I can't tell if the
procedure for creating larger old spaces is described there or not. I
do know, however, that this information is in the installation guide
since the way to increase initial old and new space sizes is to
rebuild the lisp image. If your version of lisp is recent enough to
have a `config' script with the distribution, that script will ask you
how big you want these sizes to be, and will then rebuild and
reinstall your lisp.
Hope this helps,
Charley
--
---
Charles A. Cox, Franz Inc. 1995 University Avenue, Suite 275
Internet: cox@franz.com Berkeley, CA 94704
uucp: uunet!franz!cox Phone: (415) 548-3600 FAX: (415) 548-8253