Sunday, January 7, 2007

Python smaps e gtop

Como alternativa de acesso direto aos arquivos do smaps(/proc/\/smaps), existe um módulo que acompanha o python-gobject, chamado de gtop, cuja função é oferecer ferramentas para manipulação de dados do proc.

Segue abaixo um código feito por Ian Lawrence:


import os
import gtop

def print_maps(v, c, d, name):
if c + d > 0:
print "%d\t%d\t%d\t%s" % (v / 1024, c / 1024, d / 1024, name)

for pid in gtop.proclist(gtop.PROCLIST_KERN_PROC_UID, os.getuid()):
l=gtop.proc_map(pid)

print "SHARED"
print "vmsize\tclean\tdirty\tname"

for x in sorted(l, key=lambda x: x.shared_clean + x.shared_dirty, reverse=True):
print_maps (x.size, x.shared_clean, x.shared_dirty, x.filename)

print ""
print ""

print "PRIVATE"
print "vmsize\tclean\tdirty\tname"

for x in sorted(l, key=lambda x: x.private_clean + x.private_dirty, reverse=True):
print_maps (x.size, x.private_clean, x.private_dirty, x.filename)


O próximo passo é mudar a maneira como atualmente smaps-plotter trata o /proc//smaps para o método utilizando o gtop.

0 comments:

 

Rodrigo Belem's journal. Powered By Blogger © 2009 Bombeli | Theme Design: ooruc