mem_kit 0.1.0 → 0.1.1

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: bc1ea7ebd495b16224fcfc592be90704fc3001c4
4
- data.tar.gz: 2b28d1f7aba9d37d2d9afd1d6c7904359d1f452c
3
+ metadata.gz: f671ccae048698c5be52cb5e12a67d7854b9d845
4
+ data.tar.gz: 02235890dd54c8a6520c10549ebdaaaf78bd1fb7
5
5
  SHA512:
6
- metadata.gz: db2754e19687c1eedb1628253feee029d62d43507bf2516b8762e4a00000387384e1d5903432945cbbd04dde1714891c37e500aa9891f1faee4160b72e62a282
7
- data.tar.gz: c0a8aae0420864261919bca69d9687281a3d3f740c09bc9cc1de39381b244621979f81c01b4024bdddce74ab513766aeda1bcd777999c64b17f56b28d2d373ea
6
+ metadata.gz: 443b68d94d466d7b44c46054b54dcd37eb0988877f786b335f4f34d6c9c5541870d7cf65cd4ce52db923e6e14e673ac27df1fea5d8718b6aafcfa8e519f9ffff
7
+ data.tar.gz: ccb26fd07d663557f8dc3c339eb7c85fd78b1329fddc9b31182f98b4bba020b95c2c88a60e528aa038a2337411e1ed3184bd2b1fecc3bc32ba8773fdacc86943
@@ -1,3 +1,5 @@
1
+ require 'objspace'
2
+
1
3
  module MemKit
2
4
  class Profiler
3
5
 
@@ -21,25 +23,13 @@ module MemKit
21
23
 
22
24
  @is_running = true
23
25
 
24
- require 'objspace'
25
-
26
26
  @thread = Thread.new do
27
27
 
28
28
  while @is_running == true do
29
29
 
30
- total_memory_size = ObjectSpace.memsize_of_all
31
-
32
- result = { total_memory_usage: format_size(total_memory_size), total_allocations: ObjectSpace.each_object{}, objects: [] }
33
-
34
- ObjectSpace.each_object do |o|
35
- update_object(o, result, total_memory_size)
36
- end
37
-
38
- result[:objects].sort! { |a,b| b[:bytes] <=> a[:bytes] }
30
+ GC.start
39
31
 
40
- if limit != nil
41
- result[:objects] = result[:objects][0, limit]
42
- end
32
+ result = collect(limit: limit)
43
33
 
44
34
  logger.debug("[MemKit::Profiler}] - #{JSON.dump(result)}")
45
35
 
@@ -53,6 +43,29 @@ module MemKit
53
43
 
54
44
  end
55
45
 
46
+ def self.collect(limit:)
47
+
48
+ total_memory_size = ObjectSpace.memsize_of_all
49
+
50
+ result = { total_memory_usage: format_size(total_memory_size), total_allocations: ObjectSpace.each_object{}, objects: [] }
51
+
52
+ ObjectSpace.each_object do |o|
53
+ if o.class == Object
54
+ next
55
+ end
56
+ update_object(o, result, total_memory_size)
57
+ end
58
+
59
+ result[:objects].sort! { |a,b| b[:bytes] <=> a[:bytes] }
60
+
61
+ if limit != nil
62
+ result[:objects] = result[:objects][0, limit]
63
+ end
64
+
65
+ return result
66
+
67
+ end
68
+
56
69
  def self.stop
57
70
  @is_running = false
58
71
  if @thread != nil
@@ -1,3 +1,3 @@
1
1
  module MemKit
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mem_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - vaughanbrittonsage