contrib/memory.py
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Mon, 26 Aug 2013 16:11:21 +0900
changeset 19621 11de0651d3b6
parent 10282 08a0f04b56bd
child 27795 3e0d27d298b7
permissions -rw-r--r--
histedit: add description about basic histedit function to command help Before this patch, there is no explicit description that histedit edits changesets between specified ancestor and the parent of the working directory: users may notice it by error message "REV is not an ancestor of working directory". This patch adds description about basic histedit function to command help of it. This patch uses term "ancestor" instead of "parent", because it seems to be more suitable, and almost all (error) messages already use it.

# 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.
'''

import atexit

def memusage(ui):
    """Report memory usage of the current process."""
    status = None
    result = {'peak': 0, 'rss': 0}
    try:
        # This will only work on systems with a /proc file system
        # (like Linux).
        status = open('/proc/self/status', 'r')
        for line in status:
            parts = line.split()
            key = parts[0][2:-1].lower()
            if key in result:
                result[key] = int(parts[1])
    finally:
        if status is not None:
            status.close()
    ui.write_err(", ".join(["%s: %.1f MiB" % (key, value / 1024.0)
                            for key, value in result.iteritems()]) + "\n")

def extsetup(ui):
    atexit.register(memusage, ui)