Mercurial > hg
view contrib/memory.py @ 40432:968dd7e02ac5
changegroup: allow to force delta to be against p1
This new developer option is useful to general more "generic" bundle. Without
this option, a bundle generated from the repository use deltas similar to the
one stored in the specific repository it was generated from. This makes
performance testing a bit tricky.
Using deltas similar to the final result means all delta stored in the bundle
can be applied to the target repository without any further processing (except
for the rare case of a full snapshot). The application of such bundles
(almost) never exercises the (slower) path of searching for a new valid delta.
This result in unrealistic and too favorable timing and profile.
Instead, we introduce an option to make sure all revisions are stored as a
delta against p1. It might not be the best generation option, but it
guarantees that the content will be "generic", not favoring a specific target.
author | Boris Feld <boris.feld@octobus.net> |
---|---|
date | Wed, 10 Oct 2018 00:21:02 +0200 |
parents | de5c9d0e02ea |
children | 2372284d9457 |
line wrap: on
line source
# memory.py - track memory usage # # Copyright 2009 Matt Mackall <mpm@selenic.com> and others # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. '''helper extension to measure memory usage Reads current and peak memory usage from ``/proc/self/status`` and prints it to ``stderr`` on exit. ''' from __future__ import absolute_import def memusage(ui): """Report memory usage of the current process.""" result = {'peak': 0, 'rss': 0} with open('/proc/self/status', 'r') as status: # This will only work on systems with a /proc file system # (like Linux). for line in status: parts = line.split() key = parts[0][2:-1].lower() if key in result: result[key] = int(parts[1]) ui.write_err(", ".join(["%s: %.1f MiB" % (k, v / 1024.0) for k, v in result.iteritems()]) + "\n") def extsetup(ui): ui.atexit(memusage, ui)