mem_kit 0.1.0 → 0.1.1

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: 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