[darcs-devel] [issue2438] patch index creation makes cloning much slower

Guillaume Hoffmann bugs at darcs.net
Wed Feb 18 03:05:56 UTC 2015


New submission from Guillaume Hoffmann <guillaumh at gmail.com>:

Cloning a repository with a big history (eg darcs.net with > 11K
patches) can be 2 times or 3 times slower with patch index creation
(currently enabled by default).

I took the case of cloning a local darcs.net repository with a hot hard
drive cache. On an Intel Atom netbook, cloning is approx. 3 times
slower. On a more modern i3 netbook cloning is approx. 2 times slower.

Apart from the slowness, another problem is that PI creation at cloning
is not announced by a message, and it is not ctrl-c'able (or better: it
is but the user only sees a message telling that the cloned repository
is lazy).

I don't know if it is computationnally possible to make patch index
creation *faster* than what it is now.

So a couple of easy fixes I can imagine are:

* disable patch index by default at clone and init and in repositories
that do not explicitely have a patch index. This would leave us only
with "darcs optimize enable-patch-index" to create it.
* disable patch index on cloning and initializing, enable it only when
running annotate or log with a file argument, when the repository is
writeable.

Attached are the figures of the informal benchmarks I ran, they are
quite reproduceable (with current darcs HEAD).

----------
files: timing_PI_atom
messages: 18148
milestone: 2.10.0 HEAD
nosy: bsrkaditya, gh, jaredj, kowey
status: unknown
title: patch index creation makes cloning much slower
topic: PatchIndex, Performance, ProbablyEasy

__________________________________
Darcs bug tracker <bugs at darcs.net>
<http://bugs.darcs.net/issue2438>
__________________________________
-------------- next part --------------
A non-text attachment was scrubbed...
Name: timing_PI_atom
Type: application/octet-stream
Size: 815 bytes
Desc: not available
URL: <http://lists.osuosl.org/pipermail/darcs-devel/attachments/20150218/aa308312/attachment.obj>


More information about the darcs-devel mailing list