[gclist] Finalizers & Reference counting.

Greg Hudson ghudson@MIT.EDU
29 Aug 2002 11:05:10 -0400


On Wed, 2002-08-28 at 16:47, Reedy,Christopher L. (Chris) wrote:
> I'm sure you've seen the e-mail from Linus Torvalds on the GCC mailing
> list about reference counting versus garbage collection. For those who
> may not have seen it, here is a quote from the e-mail:

> >  I strongly suspect that what makes gcc slow is that it has absolutely
> >  horrible cache behaviour, a big VM footprint, and chases pointers in
> >  that badly cached area all of the time.

Linus probably knows more about gcc than I do, but I think spending lots
of time in the kernel may have skewed his judgment.  Visible performance
problems in the real world almost always stem from algorithms with poor
scaling characteristics (O(n^2) or worse, where n is actually growing
large).  Not cache locality, not "hot spots" which need to be
hand-optimized, not anything like that.

Kernel programmers live in a world where cycle-counting optimizations
may make sense: every program on the system uses the kernel, so every
clock cycle you save in a common system call shaves off a little bit of
time for every program anyone runs.  libc programmers live in the same
world.  Everyone else should be looking at their algorithms and ignoring
the rest.