X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=scripts%2Fmono-heapviz;h=27b6f7f60235790c7c55fbd5748b9698f25de6a8;hb=51bf97f97a298b2ab1c8c944d510ec45944f09dc;hp=fe13da6c7f8fe509372c6309ed6b97191966dbf0;hpb=92f60fbffa1187be7dedf6a9286b5c35b2082815;p=mono.git
diff --git a/scripts/mono-heapviz b/scripts/mono-heapviz
index fe13da6c7f8..27b6f7f6023 100755
--- a/scripts/mono-heapviz
+++ b/scripts/mono-heapviz
@@ -156,6 +156,7 @@ class DocHandler (ContentHandler):
self.usage = {}
self.los_usage = {}
self.pinned_usage = {}
+ self.occupancies = {}
self.in_los = False
self.in_pinned = False
self.heap_used = 0
@@ -169,6 +170,13 @@ class DocHandler (ContentHandler):
kind = attrs.get('type', None)
bytes = int(attrs.get('bytes', None))
print ('Pinned from %s: %d kB
' % (kind, bytes / 1024), file = self.collection_file)
+ elif name == 'occupancy':
+ size = int (attrs.get ('size', None))
+ available = int (attrs.get ('available', None))
+ used = int (attrs.get ('used', None))
+ unused = available - used
+
+ print ('Occupancy of %d byte slots: %d / %d (%d kB / %d%% wasted)
' % (size, used, available, unused * size / 1024, unused * 100 / available), file = self.collection_file)
elif name == 'section':
kind = attrs.get('type', None)
size = int(attrs.get('size', None))