jwz@spice.cs.cmu.edu (Jamie Zawinski) (06/19/89)
Here's a problem we've been having. Our application is a pagination expert system; to lay out each page, it generates a very large search tree, and chooses the one with the best score. As a result, we have a huge amount of data around for from 20 seconds to five or ten minutes (depending on how many nodes it has to expand). The problem is, for the really hard pages, the data is around long enough that it gets promoted several times.... even though we know that almost all of it will become garbage in just a few minutes. I think it would be useful to control how quickly specific data gets promoted; say an INHIBITING-GC-PROMTION macro that we could wrap around the tree-expansion parts of our search. I guess this could make generation 0 get very large, which would be bad... could slow down TGC too much to keep up with more standard consing. But maybe a call to GC-IMMEDIATELY :MAX-GEN 0 after the inhibit- macro? A very large generation 0 might have the same effect as having TGC off, though... With the amount of short-lived-list consing our program does, that would probablay be fatal. Hurm.. Jamie --