At 9:00 AM +0200 5/17/02, Peter Gibbs wrote:
>A side effect of the split pools is targeted compaction i.e. the buffer pool
>gets compacted only when it is full, and the string pool likewise - this
>does provide a performance benefit in situations where one pool grows
>regularly and the other does not. If we were to eliminate the separation of
>pools based on type, perhaps we need to consider some other means of having
>multiple pools, purely for performance reasons. This could, for example, be
>based on the buffer header size, so each resource pool would have its own
>memory pool.

This is one thing I definitely considered, and one I think is a good 
idea. We're going to have a mix of allocation longevity 
here--constants will live for ages, as will code segments we create 
on fly, while strings and buffers may live less long. Allowing for 
multiple pools means we can delay collecting things we know don't 
need collection as often.

Consider it an alternative to generational collection, which will be 
somewhat problematic for us, I think. (Well, maybe...)
-- 
                                         Dan

--------------------------------------"it's like this"-------------------
Dan Sugalski                          even samurai
[EMAIL PROTECTED]                         have teddy bears and even
                                       teddy bears get drunk

Reply via email to