[PATCH v2 0/4] Speed up unpack_trees()
- From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
- Date
- Jul 29, 2018, 10:33 UTC
- Message-ID
- <20180729103306.16403-1-pclouds@gmail.com>
- In-Reply-To
- <20180727154241.GA21288@duynguyen.home>
This series speeds up unpack_trees() a bit by using cache-tree. unpack-trees could bit split in three big parts
- the actual tree unpacking and running n-way merging - update worktree, which could be expensive depending on how much I/O is involved - repair cache-tree
This series focuses on the first part alone and could give 700% speedup (best case possible scenario, real life ones probably not that impressive).
It also shows that the reparing cache-tree is kinda expensive. I have an idea of reusing cache-tree from the original index, but I'll leave that to Ben or others to try out and see if it helps at all.
v2 fixes the comments from Junio, adds more performance tracing and reduces the cost of adding index entries.
Nguyễn Thái Ngọc Duy (4): unpack-trees.c: add performance tracing unpack-trees: optimize walking same trees with cache-tree unpack-trees: reduce malloc in cache-tree walk unpack-trees: cheaper index update when walking by cache-tree
cache-tree.c | 2 + cache.h | 1 + read-cache.c | 3 +- unpack-trees.c | 161 ++++++++++++++++++++++++++++++++++++++++++++++++- unpack-trees.h | 1 + 5 files changed, 166 insertions(+), 2 deletions(-)
-- 2.18.0.656.gda699b98b3