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))