mem_kit 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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