t/perf: add perf tests for fetches from a bitmapped server
commit198b349da808041869d16367b4e3328b0a23174f
authorJeff King <peff@peff.net>
Fri, 17 Aug 2018 20:57:41 +0000 (17 16:57 -0400)
committerJunio C Hamano <gitster@pobox.com>
Mon, 20 Aug 2018 21:04:47 +0000 (20 14:04 -0700)
tree630bc62a091a9798c5d4b234b5478989685e9529
parent22bec79d1aef8fd82c7870e62f77b7817f0575a7
t/perf: add perf tests for fetches from a bitmapped server

A server with bitmapped packs can serve a clone very
quickly. However, fetches are not necessarily made any
faster, because we spend a lot less time in object traversal
(which is what bitmaps help with) and more time finding
deltas (because we may have to throw out on-disk deltas if
the client does not have the base).

As a first step to making this faster, this patch introduces
a new perf script to measure fetches into a repo of various
ages from a fully-bitmapped server.

We separately measure the work done by the server (in
pack-objects) and that done by the client (in index-pack).
Furthermore, we measure the size of the resulting pack.

Breaking it down like this (instead of just doing a regular
"git fetch") lets us see how much each side benefits from
any changes. And since we know the pack size, if we estimate
the network speed, then one could calculate a complete
wall-clock time for the operation (though the script does
not do this automatically).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/perf/p5311-pack-bitmaps-fetch.sh [new file with mode: 0755]