Download raw body.
Got is kinda slow
Stefan Sperling:
> Below is a patch which implements caching of parsed trees in got-read-pack.
> Unfortunately, this does not seem to help your case much, if at all.
Baseline:
12m35.32s real 12m03.32s user 0m32.00s system
With this patch (!):
24m02.20s real 21m58.82s user 2m03.75s system
> On my x250 it usally completes with a one minute or two for ports with
> much history like devel/gmake. Not great, but not catastrophic either
> given that people rarely go digging into the history of a specific path
> during most workflows.
I don't know. For me, "cd /usr/ports/foo/bar && tog log ." is
pretty natural. However, in a repository the size of FreeBSD
ports.git, it can be painfully slow. Think of somebody who's new
to Got and just wants to try it out for a bit. They'll stop right
there.
Anyway, I only wanted to point out an issue to be aware of. I didn't
think you'd right away try to work on this.
> I am afraid the only way I see to speed this up is to get rid of entry
> sorting in the tree parser and then deal with the consequences of doing so.
> Which isn't going to be pretty. Does anyone else have other ideas?
If I understand the profiling graph correctly, got spends 1/3 of
its time in inflate(). I would naively think that git also needs
to decompress the same data, but its total runtime is a fraction
of the time got spends decompressing. How can that be? And git
log is not multithreaded.
git:
0m50.69s real 0m44.59s user 0m05.81s system
(Those figure are now on OpenBSD. got built in non-release mode,
i.e. -O0.)
--
Christian "naddy" Weisgerber naddy@mips.inka.de
Got is kinda slow