Re: [PATCH 3/2] Avoid unnecessary strlen() calls
- From
Junio C Hamano <junkio@cox.net>
- Date
- Mar 20, 2007, 05:44 UTC
- Message-ID
- <7vhcsgbhav.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <Pine.LNX.4.64.0703192052380.6730@woody.linux-foundation.org>
Linus Torvalds <torvalds@linux-foundation.org> writes:
> 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.
Because hoisting stable test outside loop is always better for any architecture, I thought picking between Gitte and Gitney patches is a no brainer, and I didn't bother to compare-bench, but I got curious.
(plain) 7.89user 0.15system 0:08.08elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (0major+41608minor)pagefaults 0swaps 7.93user 0.18system 0:08.14elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (0major+41608minor)pagefaults 0swaps
(gitte -- separate function for slow path) 6.98user 0.18system 0:07.17elapsed 100%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (0major+41606minor)pagefaults 0swaps 7.14user 0.12system 0:07.26elapsed 100%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (0major+41607minor)pagefaults 0swaps
(gitney -- cheap test first before isspace) 7.23user 0.18system 0:07.42elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (0major+41608minor)pagefaults 0swaps 7.32user 0.14system 0:07.48elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (0major+41607minor)pagefaults 0swaps
So it does not seem to make much difference on Athlon 64x2 either.
Will apply the "stupid hashcmp() removal" and Dscho's patch and call it a day.