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 +4 -4
- data/lib/mem_kit/profiler.rb +10 -6
- data/lib/mem_kit/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 404bf2ae227e2d8ad4fa8bf5140f1dde80dc1c2f
|
4
|
+
data.tar.gz: c3cae7dea47c9c879007549708e8c3bb40b5d9dc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac83d5540e98dacc472f0a99b1b9b5e3efa87ddaec200c2ca40faf4ea6d925f38f30651a15d1c8492ea615073443a66fcf17eda1bf465ee07228c145d7d14499
|
7
|
+
data.tar.gz: 72435d5c76c13724564e61bdb080f4eba40500a0553c2e2bf2006b8f40fd773d5f4835639fa8c9dd86bb014272561bac1575a79fe8d60485a4346908e4111872
|
data/lib/mem_kit/profiler.rb
CHANGED
@@ -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.
|
95
|
-
obj = { klass: object.class, allocation_count: 1, memory_usage_size: format_size(mem_usage), memory_usage_percentage:
|
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
|
data/lib/mem_kit/version.rb
CHANGED
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.
|
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-
|
11
|
+
date: 2016-09-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|