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>