contrib/memory.py
author Pierre-Yves David <pierre-yves.david@octobus.net>
Wed, 29 Sep 2021 01:23:10 +0200
changeset 48112 fabf687df0ff
parent 46819 d4ba4d51f85f
child 48875 6000f5b25c9b
permissions -rw-r--r--
dirstate-item: update the attribute documentation It was very outdated. We are about to change these attribute so we should has well have them documented so that the change get easier to grasp.

# memory.py - track memory usage
#
# Copyright 2009 Olivia Mackall <olivia@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)