[PATCH 1/3] match_pathname: avoid calling strncmp if baselen is 0
- From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
- Date
- Mar 9, 2013, 04:09 UTC
- Message-ID
- <1362802190-7331-2-git-send-email-pclouds@gmail.com>
- In-Reply-To
- <1362802190-7331-1-git-send-email-pclouds@gmail.com>
This reduces "git status" user time by a little bit. This is the sorted results of 10 consecutive runs of "git ls-files --exclude-standard -o" on webkit.git, compiled with gcc -O2:
before after user 0m0.580s 0m0.546s user 0m0.581s 0m0.549s user 0m0.582s 0m0.550s user 0m0.584s 0m0.558s user 0m0.586s 0m0.560s user 0m0.587s 0m0.561s user 0m0.587s 0m0.562s user 0m0.593s 0m0.566s user 0m0.597s 0m0.568s user 0m0.601s 0m0.573s
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> --- dir.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dir.c b/dir.c index 57394e4..669cf80 100644 --- a/dir.c +++ b/dir.c @@ -663,7 +663,7 @@ int match_pathname(const char *pathname, int pathlen, */ if (pathlen < baselen + 1 || (baselen && pathname[baselen] != '/') || - strncmp_icase(pathname, base, baselen)) + (baselen && strncmp_icase(pathname, base, baselen))) return 0; namelen = baselen ? pathlen - baselen - 1 : pathlen;
-- 1.8.1.2.536.gf441e6d