Re: [PATCH 3/2] Avoid unnecessary strlen() calls
- From
Linus Torvalds <torvalds@linux-foundation.org>
- Date
- Mar 20, 2007, 04:11 UTC
- Message-ID
- <Pine.LNX.4.64.0703192052380.6730@woody.linux-foundation.org>
- In-Reply-To
- <20070320034020.GB29145@spearce.org>
On Mon, 19 Mar 2007, Shawn O. Pearce wrote:
> > DrNick suggested on #git to try flipping the isspace test around. > This is a smaller change and generated the same ~3.60 seconds run > as Dscho's patch. I like DrNick's version better. ;-)
For me, the result seems to be in the noise.
It may be due to running on Core 2. It's not very sensitive to micro-optimizations like this. It definitely makes sense to test the *stable* test first, since that will help branch prediction (the "isspace()" test is *not* very predictable), so I don't disagree with the patch, but I suspect it depends a lot on the microarchitecture just how much it matters.
Do you perhaps have a P4? It has a very bad branch mispredict penalty, so putting the predictable branch first could explain the big difference you see..
Dscho's bigger patch probably helps more on an in-order architecture, and should be equally good on a P4 (or Opteron). On Core 2, neither of the patches seem to make a huge difference.
Linus