i'm an idiot and overwrote mem.py - reverting mem.py
This commit is contained in:
parent
145739dbd3
commit
09f4abea84
|
@ -1,61 +1,30 @@
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
|
|
||||||
from util import hook
|
from util import hook
|
||||||
|
|
||||||
@hook.command
|
|
||||||
def mem(bot):
|
|
||||||
".mem -- returns bot's current memory usage"
|
|
||||||
|
|
||||||
if os.name=='posix':
|
@hook.command
|
||||||
return posixmem()
|
def mem(inp):
|
||||||
if os.name=='nt':
|
".mem -- returns bot's current memory usage -- linux/windows only"
|
||||||
return ntmem()
|
|
||||||
|
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__
|
return mem.__doc__
|
||||||
|
|
||||||
|
print mem('')
|
||||||
def posixmem():
|
|
||||||
return _VmB('Size: ') + ' ' + _VmB('Resident:') + ' ' + _VmB('Stack:')
|
|
||||||
|
|
||||||
def ntmem():
|
|
||||||
pid = os.getpid()
|
|
||||||
total = 0
|
|
||||||
|
|
||||||
cmd = "tasklist /FI \"PID eq {0}\" /FO CSV /NH".format(pid)
|
|
||||||
e = re.compile("[,0-9]+ K")
|
|
||||||
|
|
||||||
meml = re.findall(e,os.popen(cmd).read())
|
|
||||||
|
|
||||||
if not mem1[0]:
|
|
||||||
return 'This os does not have the tasklist command installed'
|
|
||||||
|
|
||||||
for mem in meml:
|
|
||||||
total += int(mem.rstrip(" K").replace(",",""))
|
|
||||||
|
|
||||||
return 'Bot mem usage: ' + str(total) + ' K'
|
|
||||||
|
|
||||||
def _VmB(Key):
|
|
||||||
'''Private'''
|
|
||||||
|
|
||||||
_proc_status = '/proc/%d/status' % os.getpid()
|
|
||||||
|
|
||||||
_scale = {'kB': 1024.0, 'mB': 1024.0*1024.0,
|
|
||||||
'KB': 1024.0, 'MB': 1024.0*1024.0}
|
|
||||||
|
|
||||||
# get pseudo file /proc/<pid>/status
|
|
||||||
try:
|
|
||||||
t = open(_proc_status)
|
|
||||||
v = t.read()
|
|
||||||
t.close()
|
|
||||||
except:
|
|
||||||
return 0.0
|
|
||||||
|
|
||||||
# get Key line e.g. 'VmRSS: 9999 kB\n ...'
|
|
||||||
i = v.index(Key)
|
|
||||||
v = v[i:].split(None, 3)
|
|
||||||
if len(v) < 3:
|
|
||||||
return 0.0
|
|
||||||
|
|
||||||
return float(v[1]) * _scale[v[2]]
|
|
||||||
|
|
Loading…
Reference in New Issue