diff options
author | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2018-01-27 19:27:56 +0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-02-02 11:20:16 -0800 |
commit | ca54d9baa4a8e73141d4c963245ee6f09dcc994d (patch) | |
tree | d0418cefb4c51789cc338eed93c7b0933644d012 /name-hash.c | |
parent | First batch after 2.16 (diff) | |
download | tgif-ca54d9baa4a8e73141d4c963245ee6f09dcc994d.tar.xz |
trace: measure where the time is spent in the index-heavy operations
All the known heavy code blocks are measured (except object database
access). This should help identify if an optimization is effective or
not. An unoptimized git-status would give something like below:
0.001791141 s: read cache ...
0.004011363 s: preload index
0.000516161 s: refresh index
0.003139257 s: git command: ... 'status' '--porcelain=2'
0.006788129 s: diff-files
0.002090267 s: diff-index
0.001885735 s: initialize name hash
0.032013138 s: read directory
0.051781209 s: git command: './git' 'status'
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'name-hash.c')
-rw-r--r-- | name-hash.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/name-hash.c b/name-hash.c index 45c98db0a0..ada66f066a 100644 --- a/name-hash.c +++ b/name-hash.c @@ -578,6 +578,8 @@ static void threaded_lazy_init_name_hash( static void lazy_init_name_hash(struct index_state *istate) { + uint64_t start = getnanotime(); + if (istate->name_hash_initialized) return; hashmap_init(&istate->name_hash, cache_entry_cmp, NULL, istate->cache_nr); @@ -600,6 +602,7 @@ static void lazy_init_name_hash(struct index_state *istate) } istate->name_hash_initialized = 1; + trace_performance_since(start, "initialize name hash"); } /* |