mem_kit 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f671ccae048698c5be52cb5e12a67d7854b9d845
4
- data.tar.gz: 02235890dd54c8a6520c10549ebdaaaf78bd1fb7
3
+ metadata.gz: 404bf2ae227e2d8ad4fa8bf5140f1dde80dc1c2f
4
+ data.tar.gz: c3cae7dea47c9c879007549708e8c3bb40b5d9dc
5
5
  SHA512:
6
- metadata.gz: 443b68d94d466d7b44c46054b54dcd37eb0988877f786b335f4f34d6c9c5541870d7cf65cd4ce52db923e6e14e673ac27df1fea5d8718b6aafcfa8e519f9ffff
7
- data.tar.gz: ccb26fd07d663557f8dc3c339eb7c85fd78b1329fddc9b31182f98b4bba020b95c2c88a60e528aa038a2337411e1ed3184bd2b1fecc3bc32ba8773fdacc86943
6
+ metadata.gz: ac83d5540e98dacc472f0a99b1b9b5e3efa87ddaec200c2ca40faf4ea6d925f38f30651a15d1c8492ea615073443a66fcf17eda1bf465ee07228c145d7d14499
7
+ data.tar.gz: 72435d5c76c13724564e61bdb080f4eba40500a0553c2e2bf2006b8f40fd773d5f4835639fa8c9dd86bb014272561bac1575a79fe8d60485a4346908e4111872
@@ -43,16 +43,13 @@ module MemKit
43
43
 
44
44
  end
45
45
 
46
- def self.collect(limit:)
46
+ def self.collect(limit: nil)
47
47
 
48
48
  total_memory_size = ObjectSpace.memsize_of_all
49
49
 
50
50
  result = { total_memory_usage: format_size(total_memory_size), total_allocations: ObjectSpace.each_object{}, objects: [] }
51
51
 
52
52
  ObjectSpace.each_object do |o|
53
- if o.class == Object
54
- next
55
- end
56
53
  update_object(o, result, total_memory_size)
57
54
  end
58
55
 
@@ -91,14 +88,21 @@ module MemKit
91
88
  def self.update_object(object, result, total_memory_size)
92
89
  obj = result[:objects].detect { |o| o[:klass] == object.class }
93
90
  if obj == nil
94
- mem_usage = ObjectSpace.memsize_of_all(object.class)
95
- obj = { klass: object.class, allocation_count: 1, memory_usage_size: format_size(mem_usage), memory_usage_percentage: "#{(mem_usage.to_f / total_memory_size.to_f * 100.0).round(2)}%", bytes: mem_usage }
91
+ mem_usage = ObjectSpace.memsize_of(object)
92
+ obj = { klass: object.class, allocation_count: 1, memory_usage_size: format_size(mem_usage), memory_usage_percentage: format_percentage(mem_usage, total_memory_size), bytes: mem_usage }
96
93
  result[:objects].push(obj)
97
94
  else
98
95
  obj[:allocation_count] += 1
96
+ obj[:bytes] += ObjectSpace.memsize_of(object)
97
+ obj[:memory_usage_size] = format_size(obj[:bytes])
98
+ obj[:memory_usage_percentage] = format_percentage(obj[:bytes], total_memory_size)
99
99
  end
100
100
  return obj
101
101
  end
102
102
 
103
+ def format_percentage(value, total)
104
+ return "#{(value.to_f / total.to_f * 100.0).round(2)}%"
105
+ end
106
+
103
107
  end
104
108
  end
@@ -1,3 +1,3 @@
1
1
  module MemKit
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mem_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - vaughanbrittonsage
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-09-09 00:00:00.000000000 Z
11
+ date: 2016-09-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler