Kouhei Sutou
null+****@clear*****
Sat Mar 19 15:38:59 JST 2016
Kouhei Sutou 2016-03-19 15:38:59 +0900 (Sat, 19 Mar 2016) New Revision: e7cb7b0264d5d29a6a35f41c07f95c183d89a6bf https://github.com/groonga/groonga/commit/e7cb7b0264d5d29a6a35f41c07f95c183d89a6bf Message: Show details for top large allocations Modified files: tools/groonga-memory-usage-analyzer.rb Modified: tools/groonga-memory-usage-analyzer.rb (+19 -1) =================================================================== --- tools/groonga-memory-usage-analyzer.rb 2016-03-19 14:56:16 +0900 (d8f982c) +++ tools/groonga-memory-usage-analyzer.rb 2016-03-19 15:38:59 +0900 (5c4d566) @@ -97,7 +97,8 @@ puts("%10s(%10s:%10s:%10s): %s(%s)" % [ "Location", "N allocations", ]) -statistics.sort_by_size.reverse[0, 10].each do |group| +top_allocated_groups = statistics.sort_by_size.reverse_each.take(10) +top_allocated_groups.each do |group| puts("%10s(%10s:%10s:%10s): %s(%d)" % [ format_size(group.total_size), format_size(group.average_size), @@ -107,3 +108,20 @@ statistics.sort_by_size.reverse[0, 10].each do |group| group.memories.size, ]) end + +puts +puts("Top allocated location's details") +top_allocated_group = top_allocated_groups.first +target_memories = top_allocated_group.memories +size_width = Math.log10(target_memories.size).floor + 1 +target_memories.group_by(&:size).sort_by do |size, memories| + size * memories.size +end.reverse_each do |size, memories| + total_size = memories.inject(0) {|sum, memory| sum + memory.size} + puts("%10s(%10s * %#{size_width}d): %s" % [ + format_size(total_size), + format_size(size), + memories.size, + memories.first.location, + ]) +end -------------- next part -------------- HTML����������������������������...ダウンロード