Messages in this thread | | | Date | Tue, 04 Feb 2003 14:05:12 +0000 | From | P@draigBra ... | Subject | Re: gcc 2.95 vs 3.21 performance |
| |
Helge Hafting wrote: > Padraig@Linux.ie wrote: > [...] > >>Interesting. I just noticed that I get 50% decrease in >>the speed of my program if I just insert a printf(). I.E. >>my program is like: >> >>printf() >>for(;;) { >> do_sorting_loop_test(); >>} >> >>If I remove the initial printf it doubles in speed? >>I assume this is some weird caching thing? > > > Looks like a cacheline alignment issue to me. > This loop of yours occupy x cachelines on your cpu, > moving it in memory by adding the printf > might cause it to ocupy x+1 cachelines. > That might be noticeable if x is a really small number, > such as 1.
OK it is (as I suspected and as you explained nicely) related to the cachelines on my CPU (866 celery).
=============================== GCC options loops/s =============================== gcc 2283 gcc -O3 -falign-loops=2 3451 gcc -O3 -falign-loops=4 3443 gcc -O3 -falign-loops=8 7045 gcc -march=i686 -O3 9101 ===============================
cheers, Pádraig.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |