libgit2/libgit2 — pull request #928 by barrbrain (2012-09-12 23:41:13+00:00)
Title: odb_pack: try lookup before refreshing packs

This reduces the rate of syscalls for the common case of sequences of
object reads from the same pack.

Best of 5 timings for `libgit2_clar` before this patch:

real 0m5.375s
user 0m0.392s
sys 0m3.564s

After applying this patch:

real 0m5.285s
user 0m0.356s
sys 0m3.544s

0.6% improvement in system time.
9.2% improvement in user time.
1.7% improvement in elapsed time.

Confirmed a 0.6% reduction in number of system calls with `strace`.

Expect greater improvement for graph-traversal with large packs.