I've wondered how slow the protocols other than rsync are, and the
(well, a bit dubious; especially wrt. caching on the remote side)
git clone-pack:ssh 25s
git rsync 27s
git http-pull 47s
git dumb-http 54s
git ssh-pull 660s
cogito clone-pack:ssh 35s (!)
cogito rsync 140s
cogito ssh-pull 480s
cogito http-pull extrapolated to about an hour!
cogito dumb-http N/A (missing info in the repository)
(I didn't test the git server protocol, since kernel.org doesn't run
git server and I was too lazy to setup one.)
The git repository contains one big pack, one small pack and few
standalone objects (5882 objects in total), while cogito is standalone
objects only (9670 objects in total, 8681 reachable).
The numbers are off by some epsilons, as I didn't bother with multiple
measures, but shouldn't be hugely off for a general comparison. The
network connection has 2048kbit/s download, the other side was
www.kernel.org for HTTP and rsync, and master.kernel.org for ssh.
Pulling from localhost (128M of RAM, 5M to 30M free - awful, yes):
cogito rsync:ssh 150s
cogito ssh-pull 120s (but didn't complete, see PS)
cogito http-pull 260s
cogito clone-pack:ssh 340s
Anyway, clone-pack is a clear winner for networks (but someone should
re-check that, especially compared to rsync, wrt. server-side file
caching); really cool fast, but not very practical for anonymous access.
Any volunteers for a simple CGI (or gitweb addon) script + HTTP support
in clone-pack? HTTP is certainly the most suitable protocol for
anonymous pulls, so it's a shame it's still that sluggish.
It is so slow here since it has some very ugly access pattern on the
objects database and my RAM is full so it does not get cached; even on
the servers, it was slower at first - unfortunately, I didn't measure
that, so what's in the top table are second accesses. Still, I would
expect the big repositories to stay mostly in the server cache, so this
isn't that big problem for those, I think.
With the latest git version as of time of writing this:
$ time cg-clone git+ssh://[EMAIL PROTECTED]/home/pasky/WWW/dev/git/.g
progress: 5759 objects, 10292457 bytes
$ time cg-clone http://localhost/~pasky/dev/git/.g cogito
progress: 8681 objects, 14881571 bytes
Petr "Pasky" Baudis
If you want the holes in your knowledge showing up try teaching
someone. -- Alan Cox
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html