[Mono-gc-list] Fast allocation vs lightweight collection

David Jeske jeske@chat.net
Tue, 19 Aug 2003 19:58:08 -0700

On Tue, Aug 19, 2003 at 10:47:22AM +0200, Fernando Diaz wrote:
> I have a question for you again. What do you think is better a Fast
> allocation process or a lightweight collection?

I think it is much more important to have a lightweight collector with
controllable worst-case pause times.

> I think that in a application with an adjusted size of the heap, the
> fact of having a fast allocator make the application faster than the
> fact of having a fast collector. Because generally the number of
> allocations is greater than the number of collections (note that we have
> a good adjusted heap). But if a collection is needed, the time that it
> going to consume will be bigger than the time necessary in a fast
> collector with slow allocator.

In appliactions where pauses are unacceptable, there is no way to
"work around" the problem.

Constant factor performance degredation is not relevant. Computers get
faster every year, it is easy to use more computers, and in the rare
windows of time where this is a problem for a specific application,
they are probably writing in C instead of C# anyhow.

In other words, I'm saying that if:

 X = # of programs which won't tolorate GC pauses
 Y = # of programs which won't tolorate 20% degredation (C->C#)
 Z = # of programs which won't tolorate 10% allocation overhead


 Z ~= 0  : most of these programs are in Y, not Z.
 X >> Z  : the number of programs which can be written in
           Mono with a low-pause collector will be greater than
           with a high-pause, low-overhead collector

David Jeske (N9LCA) + http://www.chat.net/~jeske/ + jeske@chat.net