GUI performance with large repos (100k changesets)

Greg Ward greg-hg at gerg.ca
Wed Jun 10 13:21:21 CDT 2009


On Wed, Jun 10, 2009 at 1:48 PM, Steve Borho<steve at borho.org> wrote:
> I'm curious to know how the tip of hgtk deals with that repository.
> Care to run a test?

Certainly!  It looks like hgview has priced itself out of the market:
we're using CentOS 5, which only includes Qt 3, which means requiring
PyQt 4 makes it more trouble than it's worth to try hgview.  I can
play with it at home, where I use reasonably up-to-date OS versions,
but it's painful at work.

So, on to TortoiseHg:

  * time to usable GUI: 8 sec (N.B. the only indication that it's
working is the word "Running" in the lower left: perhaps a stopwatch
cursor is called for here?)
  * memory use while looking at the first 500 revs: ~180 MB (from
Linux "ps v": DRS=184878, RSS=116056)
  * time to read next 500 revs: ~1 sec
  * time to read next 500 revs: ~2 sec
  * time to read next 500 revs: ~3 sec (yes, it appears to get
progressively slower)
  * memory use when looking at 2000 revs: ~200 MB (DRS=203922, RSS=135080)

So far so good.  Your trick of only showing the top 500 revs feels
like a big win.  Overall poking-around-the-GUI-looking-at-stuff is a
bit sluggish, but tolerable.

Now, I'm gonna make it *hurt* and hit the "show all" button...

  * the GUI is not very responsive while that's going: takes ~4 sec to
redraw after iconifying and re-exposing; pretty much any GUI operation
takes 4-6 sec to get any response at all
  * after ~6 min (?), it has read ~10,000 revisions and memory use is
up to ~590 MB
  * hitting Ctrl-C in the terminal where I launched hgtk did not work
immediately: had to hit it several times to kill hgtk.

Oh yeah, I forgot to mention: the specs on this repository are a
little different from what I posted last week.  I'm now converting
some CVS tags, and I'm converting with --branchsort.  Thus, the
repository has ~134,000 revisions and takes up 652 MB (no working
copy). There are ~26,000 files.

Greg


More information about the Mercurial mailing list