Am 23.01.2007 um 15:33 schrieb Stephen Deasey:


Why?

Even more, from 16 to 8K. Because most of the
allocations fall in the range to about 8K.
That was empirically obtained on a large OpenACS
site. And, as we are pretty greedy (a thread never
releases allocated memory until the exit) we can
significantly bloat. This way the system allocator
is handling those and it can toss free'd blocks
to other threads reducing peak memory usage.
Since allocations of that sizes (and larger) are
pretty rare, we need not worry about locking
contention as it is the case with smaller allocations.

I can confirm that with this strategy, we are still
pretty fast (speed didn't practically change) and
use far less memory than before.








Reply via email to