[darcs-devel] Fwd: patch index performance impact on add, record, amend, obliterate

Aditya bsrkaditya at gmail.com
Thu Apr 4 08:22:47 UTC 2013


Hi everyone,
 I want to precisely pinpoint what exactly makes patch index update take so
long.
For this purpose, I have broke patch index update into two parts. (patch
attached)

Then, I used (modified) gh's bench script to time record + update part 1 +
update part 2

However, the time taken by update was minimal in my case.
So, I want further help from other devs, so that we can know what exactly
takes time.

I have attached the relevant files to this mail.

I will like it if someone tries an reports the result.

Thank you,
Aditya


On Thu, Apr 4, 2013 at 12:49 PM, Ganesh Sittampalam <ganesh at earth.li> wrote:

> As discussed, could you send something to the mailing list about this
> and I'll follow up there? It's hard to have a proper record of the
> investigations and so forth if the discussion is fragmented across
> different people's mailboxes.
>
>
> On 02/04/2013 12:03, Aditya wrote:
> >
> >
> > ---------- Forwarded message ----------
> > From: *Aditya* <bsrkaditya at gmail.com <mailto:bsrkaditya at gmail.com>>
> > Date: Sun, Mar 24, 2013 at 12:20 PM
> > Subject: Re: patch index performance impact on add, record, amend,
> > obliterate
> > To: Guillaume Hoffmann <guillaumh at gmail.com <mailto:guillaumh at gmail.com
> >>
> >
> >
> > Hi gh,
> >  I want you to further test out pi. I have attached a patch which breaks
> > pi update into two parts. I also slightly modified your shellscript
> > benchpatchindex.sh
> >  Can you run it, and tell me the result?
> >
> > Thanks,
> > Aditya
> >
> >
> > On Mon, Feb 25, 2013 at 3:55 AM, Guillaume Hoffmann <guillaumh at gmail.com
> > <mailto:guillaumh at gmail.com>> wrote:
> >
> >     I wrote a (write-only) script that measures the impact of patch index
> >     on medium-sized repositories (1000 patches).
> >
> >     Here's what the script successively does:
> >
> >     * generate 500 random files of 2 KBytes each, and an empty file
> >     named `foo`
> >     * add all of this as an first patch of an empty repository (1)
> >     * create 1000 successive patches, each one made of changing the
> >     contents of `foo` to a random line of 80 characters (2)
> >     * amend 100 times the last patch of the repository by changing the
> >     contents of `foo` to a random line of 80 characters (3)
> >     * obliterate the last 100 patches of the repository (4)
> >
> >     It does it first on a repository made with `init
> >     --disable-patch-index`, then with a new one made with `init
> >     --patch-index`.
> >
> >     The duration of each step are the following (in seconds):
> >
> >     add_disable-patch-index
> >     2.82
> >     add_patch-index
> >     2.40
> >
> >     record_disable-patch-index
> >     243.73
> >     record_patch-index
> >     1635.95
> >
> >     amend_disable-patch-index
> >     55.83
> >     amend_patch-index
> >     329.87
> >
> >     obliterate_disable-patch-index
> >     48.81
> >     obliterate_patch-index
> >     183.61
> >
> >     Running the script takes approx. 45 minutes on my machine.
> >
> >     The most worrying figures are those of record and amend. It would be
> >     really great if we could fix this by darcs 2.10, otherwise I fear
> >     that's going to be another feature we will have to disable by
> default.
> >
> >     Attached is my script (and its subscripts). Probably not portable, I
> >     does run under Ubuntu. Run it with ./benchpatchindex.sh , with all
> the
> >     other scripts in the same directory.  I may polish the script further
> >     so that it outputs nice charts.
> >
> >     Guillaume
> >
> >
> >
> >
> > --
> > BSRK Aditya
> >
> >
> >
> > --
> > BSRK Aditya
>
>


-- 
BSRK Aditya
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osuosl.org/pipermail/darcs-devel/attachments/20130404/2f4f9539/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: do-not-add-this-to-official-repo_-temp-code-for-timing-pi-update.dpatch
Type: application/octet-stream
Size: 23252 bytes
Desc: not available
URL: <http://lists.osuosl.org/pipermail/darcs-devel/attachments/20130404/2f4f9539/attachment-0001.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: benchpatchindex.sh
Type: application/x-sh
Size: 1388 bytes
Desc: not available
URL: <http://lists.osuosl.org/pipermail/darcs-devel/attachments/20130404/2f4f9539/attachment-0001.sh>


More information about the darcs-devel mailing list