[Groonga-commit] groonga/groonga at e7cb7b0 [master] Show details for top large allocations

アーカイブの一覧に戻る

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����������������������������...
ダウンロード 



More information about the Groonga-commit mailing list
アーカイブの一覧に戻る