Index: tools/memory_inspector/memory_inspector/frontends/www_server.py |
diff --git a/tools/memory_inspector/memory_inspector/frontends/www_server.py b/tools/memory_inspector/memory_inspector/frontends/www_server.py |
index c4ad3b239b81ebe2d799d8a92e72976c33f79c13..84fdc81a0dd162e0016096f2fceeffcee9c4e3e8 100644 |
--- a/tools/memory_inspector/memory_inspector/frontends/www_server.py |
+++ b/tools/memory_inspector/memory_inspector/frontends/www_server.py |
@@ -23,10 +23,11 @@ import collections |
import datetime |
import dateutil.parser |
import glob |
-import os |
+import json |
import memory_inspector |
import mimetypes |
-import json |
+import os |
+import posixpath |
import re |
import urlparse |
import uuid |
@@ -596,7 +597,7 @@ def _LoadNheapFromStorage(args, req_vars): |
frame.symbol and frame.symbol.source_info else frame.raw_address) |
strace += '<dd title="%s">%s</dd><dt>%s</dt>' % ( |
cgi.escape(source_info), |
- cgi.escape(os.path.basename(source_info)), |
+ cgi.escape(posixpath.basename(source_info)), |
cgi.escape(symbol_name)) |
strace += '</dl>' |
@@ -676,6 +677,7 @@ def _ConvertMmapToGTable(mmap): |
{'label': 'End', 'type':'string'}, |
{'label': 'Length Kb', 'type':'number'}, |
{'label': 'Prot', 'type':'string'}, |
+ {'label': 'RSS Kb', 'type':'number'}, |
{'label': 'Priv. Dirty Kb', 'type':'number'}, |
{'label': 'Priv. Clean Kb', 'type':'number'}, |
{'label': 'Shared Dirty Kb', 'type':'number'}, |
@@ -691,6 +693,7 @@ def _ConvertMmapToGTable(mmap): |
{'v': '%08x' % entry.end, 'f': None}, |
{'v': entry.len / 1024, 'f': None}, |
{'v': entry.prot_flags, 'f': None}, |
+ {'v': entry.rss_bytes / 1024, 'f': None}, |
{'v': entry.priv_dirty_bytes / 1024, 'f': None}, |
{'v': entry.priv_clean_bytes / 1024, 'f': None}, |
{'v': entry.shared_dirty_bytes / 1024, 'f': None}, |
@@ -717,11 +720,11 @@ def _GetCacheObject(obj_id): |
def _StrMem(nbytes): |
"""Converts a number (of bytes) into a human readable string (kb, mb).""" |
- if nbytes < 2**10: |
- return '%d B' % nbytes |
- if nbytes < 2**20: |
- return '%.1f KB' % round(nbytes / 1024.0) |
- return '%.1f MB' % (nbytes / 1048576.0) |
+ UNITS = ['B', 'K', 'M', 'G'] |
+ for unit in UNITS: |
+ if abs(nbytes) < 1024.0 or unit == UNITS[-1]: |
+ return ('%3.1f' % nbytes).replace('.0','') + ' ' + unit |
+ nbytes /= 1024.0 |
def _HttpRequestHandler(environ, start_response): |