Re: [PATCH 3/2] Avoid unnecessary strlen() calls
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:43:00
Linus Torvalds [off-list ref] 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.