29 lines
819 B
Python
29 lines
819 B
Python
![]() |
import os
|
|||
|
import re
|
|||
|
|
|||
|
from util import hook
|
|||
|
|
|||
|
|
|||
|
@hook.command(autohelp=False)
|
|||
|
def mem(inp):
|
|||
|
".mem -- returns bot's current memory usage -- linux/windows only"
|
|||
|
|
|||
|
if os.name == 'posix':
|
|||
|
status_file = open("/proc/%d/status" % os.getpid()).read()
|
|||
|
line_pairs = re.findall(r"^(\w+):\s*(.*)\s*$", status_file, re.M)
|
|||
|
status = dict(line_pairs)
|
|||
|
keys = 'VmSize VmLib VmData VmExe VmRSS VmStk'.split()
|
|||
|
return ', '.join(key + ':' + status[key] for key in keys)
|
|||
|
|
|||
|
elif os.name == 'nt':
|
|||
|
cmd = "tasklist /FI \"PID eq %s\" /FO CSV /NH" % os.getpid()
|
|||
|
out = os.popen(cmd).read()
|
|||
|
|
|||
|
total = 0
|
|||
|
for amount in re.findall(r'([,0-9]+) K', out):
|
|||
|
total += int(amount.replace(',', ''))
|
|||
|
|
|||
|
return 'memory usage: %d kB' % total
|
|||
|
|
|||
|
return mem.__doc__
|