From: Junio C Hamano Date: Thu, 8 Feb 2018 23:08:28 +0000 (-0800) Subject: Merge branch 'nd/trace-index-ops' into next X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/91e362b26ad2f85bdb9d82f78cc1111a028e261f?hp=--cc Merge branch 'nd/trace-index-ops' into next * nd/trace-index-ops: trace: measure where the time is spent in the index-heavy operations --- 91e362b26ad2f85bdb9d82f78cc1111a028e261f diff --cc read-cache.c index 6339e61760,eac74bc9f1..28bf0db9d9 --- a/read-cache.c +++ b/read-cache.c @@@ -1862,15 -1865,17 +1864,16 @@@ unmap * This way, shared index can be removed if they have not been used * for some time. */ -static void freshen_shared_index(char *base_sha1_hex, int warn) +static void freshen_shared_index(const char *shared_index, int warn) { - char *shared_index = git_pathdup("sharedindex.%s", base_sha1_hex); if (!check_and_freshen_file(shared_index, 1) && warn) warning("could not freshen shared index '%s'", shared_index); - free(shared_index); } -int read_index_from(struct index_state *istate, const char *path) +int read_index_from(struct index_state *istate, const char *path, + const char *gitdir) { + uint64_t start = getnanotime(); struct split_index *split_index; int ret; char *base_sha1_hex; @@@ -1901,10 -1907,10 +1905,11 @@@ base_sha1_hex, base_path, sha1_to_hex(split_index->base->sha1)); - freshen_shared_index(base_sha1_hex, 0); + freshen_shared_index(base_path, 0); merge_base_index(istate); post_read_index_from(istate); + trace_performance_since(start, "read cache %s", base_path); + free(base_path); return ret; } @@@ -2233,8 -2239,9 +2238,9 @@@ void update_index_if_able(struct index_ static int do_write_index(struct index_state *istate, struct tempfile *tempfile, int strip_extensions) { + uint64_t start = getnanotime(); int newfd = tempfile->fd; - git_SHA_CTX c; + git_hash_ctx c; struct cache_header hdr; int i, err = 0, removed, extended, hdr_version; struct cache_entry **cache = istate->cache;