+def summary(names = None, total_rss = memtotal()):
+ """
+ Return a summary of memory usage by slice.
+ """
+ slicelist = slicestat(names).values()
+ slicelist.sort(lambda a, b: b['rss'] - a['rss'])
+
+ table = "%-20s%10s%24s\n\n" % ("Slice", "Processes", "Memory Usage")
+ for slice in slicelist:
+ table += "%-20s%10d%16s (%4.1f%%)\n" % \
+ (slice['name'], len(slice['procs']),
+ format_bytes(slice['rss'] * 1024, si = False),
+ 100. * slice['rss'] / total_rss)
+
+ return table
+