Date: Thu, 26 Jun 2003 20:49:44 -0700 From: Jon Mini <mini@freebsd.org> To: "D. J. Bernstein" <djb@cr.yp.to> Cc: freebsd-performance@freebsd.org Subject: Re: ten thousand small processes Message-ID: <20030627034944.GP55678@elvis.mu.org> In-Reply-To: <20030626025029.71392.qmail@cr.yp.to> References: <20030625060629.51087.qmail@cr.yp.to> <20030625023621.N17881-100000@mail.chesapeake.net> <20030625094301.56349.qmail@cr.yp.to> <20030626025029.71392.qmail@cr.yp.to>
next in thread | previous in thread | raw e-mail | index | archive | help
I am aware of what you say, but it doesn't not change the inaccuracy of your original statement. D. J. Bernstein [djb@cr.yp.to] wrote : > Jon Mini writes: > > I'm sorry, but you are way off here. First of all, caches are *much > > larger* than the size of the processes you are talking about. > > I'm sorry, but you are being misled by a naive model of CPU performance. > On a typical Pentium in our department, the following program becomes > three times faster when SPACING is changed from 4096 to 128: > > #define SPACING 4096 > char data[8 * SPACING]; > main() > { > int i; > for (i = 0;i < 10000000;++i) { > data[0] = data[SPACING]; > data[2 * SPACING] = data[3 * SPACING]; > data[4 * SPACING] = data[5 * SPACING]; > data[6 * SPACING] = data[7 * SPACING]; > } > } > > >From an asm programmer's perspective, when FreeBSD decides to spread a > small program's variables between > > * the beginning of a data page, > * the beginning of a bss page, > * the beginning of a malloc mmap page, > * the beginning of a heap page, > * the beginning of the next heap page, > * the beginning of yet another heap page, > > et cetera, it is actively trying (with varying degrees of success) to > damage cache performance in exactly the same way that this program does. > > ---D. J. Bernstein, Associate Professor, Department of Mathematics, > Statistics, and Computer Science, University of Illinois at Chicago > _______________________________________________ > freebsd-performance@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-performance > To unsubscribe, send any mail to "freebsd-performance-unsubscribe@freebsd.org" -- Jonathan Mini <mini@freebsd.org> http://www.freebsd.org/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030627034944.GP55678>