D4386: manifest: proxy to revlog instance instead of inheriting

indygreg (Gregory Szorc) phabricator at mercurial-scm.org
Mon Aug 27 12:36:13 EDT 2018


indygreg planned changes to this revision.
indygreg added a comment.


  In https://phab.mercurial-scm.org/D4386#67436, @martinvonz wrote:
  
  > Adding proxies can be costly, but maybe performance only matters for the changelog? I can imagine `hg verify` being the command most affected by this change. Does that get even measurably slower? Of course, it's not very important that `hg verify` is fast; the point is that if there's no measurable impact on that command, then I can't think of anything else where it would be measurable.
  
  
  Yes, this will add overhead. Whether that overhead is significant for any operations we care about is up in the air. I've been testing CPU utilization for `hg clone` on both server and client for the mozilla-unified repo. That's a good proxy for `hg bundle` and `hg unbundle` performance. I can add `hg verify` to my tests as well.
  
  Honestly, for manifests I expect that I/O, decompression, and patch application to dwarf the overhead of an additional Python function call. There might be some tight loops calling into say `rev()` or `node()` that will be impacted. But many of those are later followed by something that does revision resolving, delta generation, etc and thus the regression is not noticed.
  
  Anyway, I'll revise this commit message to include some performance numbers.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D4386

To: indygreg, #hg-reviewers
Cc: martinvonz, mercurial-devel


More information about the Mercurial-devel mailing list