statdaemon extension

Idan Kamara idankk86 at gmail.com
Tue Aug 21 06:24:07 CDT 2012


On Tue, Aug 21, 2012 at 1:59 PM, Martin Geisler <mg at aragost.com> wrote:
>
> Hi guys,
>
> I've been working on making Mercurial faster on Windows: a client
> contacted us because TortoiseHg was super slow: clicking on the "working
> directory" line took 15 seconds. This is with Windows XP on a fast
> machine. The repository has about 75k files, is on a SSD, and virus
> scanning was disabled for the working copy.

Cool stuff!

You can probably get a significant boost from porting chg[1] to
Windows too.

>
> Some spring cleaning brought down the number of files, but to make
> things faster I've begun implementing a statdaemon -- an inotify-like
> daemon that will keep track of the file system state.
>
> It's on Bitbucket:
>
>   https://bitbucket.org/aragost/statdaemon
>
> On a repository with 63k files, 'hg status --time' goes from 2.9 sec to
> 1.8 sec with the extension enabled. I get the same result with
> Measure-Command in PowerShell.
>
> Strangely, I see the time go from 2.4 sec to 2.7 sec when I use 'hg
> perfstatus' to measure the time.
>
>
> Bugs:
>
> With the big tree, I see stale results in 'hg status', even though I see
> that the statdaemon is updating its cache when I make changes. I haven't
> tracked this down yet and the tests (yay, tests on Windows!) haven't
> captured it yet.

Pretty sure the file notification API is known to sometimes fail to
report some changes. Especially when there's a burst of incoming
changes that cause some underlying buffer to fill up.

[1] https://bitbucket.org/yuja/chg
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://selenic.com/pipermail/mercurial-devel/attachments/20120821/7e381b47/attachment.html>


More information about the Mercurial-devel mailing list