[PATCH 3 of 3] revlog: optionally cache the full text when adding revisions

Gregory Szorc gregory.szorc at gmail.com
Sat Sep 26 18:58:25 CDT 2015

On Sun, Sep 13, 2015 at 7:38 PM, Augie Fackler <raf at durin42.com> wrote:

> On Sat, Sep 12, 2015 at 04:56:12PM -0700, Gregory Szorc wrote:
> > # HG changeset patch
> > # User Gregory Szorc <gregory.szorc at gmail.com>
> > # Date 1442099477 25200
> > #      Sat Sep 12 16:11:17 2015 -0700
> > # Node ID 046c9fd2a75c7b5beca3e4ae04c1ced382530c44
> > # Parent  9b0f250a7ac06af053725d735aa551eed9d3e66b
> > revlog: optionally cache the full text when adding revisions
> queued, very nice wins

I was doing some performance analysis on my Windows 10 machine (no VM, SSD,
NTFS) and this patch has a drastic impact.

Applying just the first 100,000 changesets of a gzip bundle of
mozilla-central went from 90-110s to 16.5-17.0s. That's a 5x speedup!

My takeaway is [re?]opening files [for writing?] in rapid succession isn't
very efficient on Windows. I know people like to knock I/O on Windows. But
I didn't think it was this bad. Part of me suspects we (possibly Python) is
doing something really sub-optimal.

FWIW, filelog writing during unbundle appears to suffer from similar
slowdowns on Windows. I'll keep exploring...
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://selenic.com/pipermail/mercurial-devel/attachments/20150926/69d90fa2/attachment.html>

More information about the Mercurial-devel mailing list