| Index: tools/memory_watcher/scripts/memprof.pl
|
| ===================================================================
|
| --- tools/memory_watcher/scripts/memprof.pl (revision 30172)
|
| +++ tools/memory_watcher/scripts/memprof.pl (working copy)
|
| @@ -13,22 +13,20 @@
|
| #
|
| # Sample output:
|
| #
|
| -# 54061617 100.00% AllocationStack::AllocationStack
|
| -# 41975368 77.64% malloc
|
| -# 11886592 21.99% VirtualAlloc
|
| -# 7168000 13.26% v8::internal::OS::Allocate
|
| -# 7168000 13.26% v8::internal::MemoryAllocator::AllocateRawMemory
|
| -# 5976184 11.05% WebCore::V8Bridge::evaluate
|
| -# 5767168 10.67% v8::internal::MemoryAllocator::AllocatePages
|
| -# 5451776 10.08% WebCore::V8Proxy::initContextIfNeeded
|
| +# 54,061,617 100.00% AllocationStack::AllocationStack
|
| +# 41,975,368 77.64% malloc
|
| +# 11,886,592 21.99% VirtualAlloc
|
| +# 7,168,000 13.26% v8::internal::OS::Allocate
|
| +# 7,168,000 13.26% v8::internal::MemoryAllocator::AllocateRawMemory
|
| +# 5,976,184 11.05% WebCore::V8Bridge::evaluate
|
| +# 5,767,168 10.67% v8::internal::MemoryAllocator::AllocatePages
|
| +# 5,451,776 10.08% WebCore::V8Proxy::initContextIfNeeded
|
| # ....
|
| #
|
| #
|
| #
|
| # ********
|
| -# Note: The output is not currently sorted. To make it more legible,
|
| -# you will want to sort numerically by the first field:
|
| -# $ ./memprof.pl memwatcher.log3620.txt | sort -n -r
|
| +# Note: The output is currently sorted by decreasing size.
|
| # ********
|
| #
|
|
|
| @@ -90,15 +88,21 @@
|
|
|
| # now dump our hash table
|
| my $sum = 0;
|
| - my @keys = keys(%leaks);
|
| + my @keys = sort { $leaks{$b} <=> $leaks{$a} }keys %leaks;
|
| for ($i=0; $i<@keys; $i++) {
|
| my $key = @keys[$i];
|
| - printf "%8d\t%3.2f%%\t%s\n", $leaks{$key}, (100* $leaks{$key} / $total_bytes), $key;
|
| + printf "%11s\t%3.2f%%\t%s\n", comma_print($leaks{$key}), (100* $leaks{$key} / $total_bytes), $key;
|
| $sum += $leaks{$key};
|
| }
|
| - print("TOTAL: $sum\n");
|
| + printf("TOTAL: %s\n", comma_print($sum));
|
| }
|
|
|
| +# Insert commas into an integer after each three digits for printing.
|
| +sub comma_print {
|
| + my $num = "$_[0]";
|
| + $num =~ s/(\d{1,3}?)(?=(\d{3})+$)/$1,/g;
|
| + return $num;
|
| +}
|
|
|
| # ----- Main ------------------------------------------------
|
|
|
|
|