Re: [PATCH] Speedup prefixcmp() common case
- From
- Marco Costalba <mcostalba@gmail.com>
- Date
- Dec 29, 2007, 20:43 UTC
- Message-ID
- <e5bfff550712291243x6f8d7b2k15055ff55379142e@mail.gmail.com>
- In-Reply-To
- <e5bfff550712291001q5f246ceah6700b98308fb96f1@mail.gmail.com>
In case the prefix string is a single char avoid a costly call to strlen() + strncmp()
With this patch git log with --pretty=format option is 10% faster
With suggestions by Junio C Hamano
Signed-off-by: Marco Costalba <mcostalba@gmail.com> ---
git-compat-util.h | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/git-compat-util.h b/git-compat-util.h index 79eb10e..e26b684 100644 --- a/git-compat-util.h +++ b/git-compat-util.h @@ -398,6 +398,10 @@ static inline int sane_case static inline int prefixcmp(const char *str, const char *prefix) { + /* shortcut common case of a single char prefix */ + if (prefix && !prefix[1] && str) + return *str - *prefix; + return strncmp(str, prefix, strlen(prefix)); } -- 1.5.4.rc2-dirty