mem_kit 0.1.5 → 0.1.6

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: 7a63448a9152611329b610fde6557caea9c69c3a
4
- data.tar.gz: b6ece5c440e8c06aebf9ce51bde9107b64404147
3
+ metadata.gz: 01507f215e7ca655fbc2784f9f697bf94757c190
4
+ data.tar.gz: ed61c68a6f6e9b3d0c3ddfd6af7a001c43f97f5a
5
5
  SHA512:
6
- metadata.gz: 197eea62f2eb8172a8eff128fa6db5e4861747ec10c070ff59e8f9c924f3df44b7e08da5cfa4108c31ed5a0586eedbe363ed5b7810161948d1d7ed47517123d3
7
- data.tar.gz: db4fae127aed4e32d539c8d5037c6bd075d54204e75d1f79f0ad507bf98a1f22fdbf380f1e45c143f45d7cc44bdad2594b4cc4ac454301c02c2856bd665ccbf0
6
+ metadata.gz: 27e635b2795e9a03cde13fd0601c33d583156601721df1d546bc87d7bdd936d6b045f7c05772eb363330e2fafbc3fc6d1adb3344d4238e01c2c9e4ccf75009d4
7
+ data.tar.gz: 671c4ab00539912dd62ead068246a3ba3f4a10c8469c064b7daf4e31c2ac630306de73f1cdef1b635109e9ec985826e68ea55632d1aeb1b8bba24cbaa09f97dd
@@ -1,7 +1,11 @@
1
1
  module MemKit
2
2
  class Cleaner
3
3
 
4
- def self.start(logger: nil, interval: 120)
4
+ def self.is_running
5
+ return @is_running
6
+ end
7
+
8
+ def self.start(logger: nil, interval: 30)
5
9
  if logger == nil
6
10
  logger = Logger.new(STDOUT)
7
11
  end
@@ -3,7 +3,11 @@ require 'objspace'
3
3
  module MemKit
4
4
  class Profiler
5
5
 
6
- def self.start(logger: nil, interval: 240, limit: nil)
6
+ def self.is_running
7
+ return @is_running
8
+ end
9
+
10
+ def self.start(logger: nil, interval: 120, limit: nil)
7
11
 
8
12
  if logger == nil
9
13
  logger = Logger.new(STDOUT)
@@ -45,9 +49,11 @@ module MemKit
45
49
 
46
50
  def self.collect(limit: nil)
47
51
 
52
+ @rvalue_size ||= GC::INTERNAL_CONSTANTS[:RVALUE_SIZE]
53
+
48
54
  total_memory_size = ObjectSpace.memsize_of_all
49
55
 
50
- result = { total_memory_usage: format_size(total_memory_size), total_allocations: ObjectSpace.each_object{}, objects: [] }
56
+ result = { total_memory_usage: format_size(total_memory_size), total_allocations: ObjectSpace.each_object{}, symbol_count: Symbol.all_symbols.size, object_counts: ObjectSpace.count_objects, objects: [] }
51
57
 
52
58
  ObjectSpace.each_object do |o|
53
59
  update_object(o, result, total_memory_size)
@@ -75,20 +81,22 @@ module MemKit
75
81
  unit = 'Bytes'
76
82
  if bytes >= 100000
77
83
  #format as MB
78
- value = bytes.to_f / 1000.0 / 1000.0
84
+ value = (bytes.to_f / 1000.0 / 1000.0).round(2)
79
85
  unit = 'MB'
80
86
  elsif bytes >= 500
81
87
  #format as KB
82
- value = bytes.to_f / 1000.0
88
+ value = (bytes.to_f / 1000.0).round(2)
83
89
  unit = 'KB'
84
90
  end
85
- return "#{value.round(2)} #{unit}"
91
+ return "#{value} #{unit}"
86
92
  end
87
93
 
88
94
  def self.update_object(object, result, total_memory_size)
89
95
  obj = result[:objects].detect { |o| o[:klass] == object.class }
90
96
  if obj == nil
91
- mem_usage = ObjectSpace.memsize_of(object)
97
+ mem_usage = ObjectSpace.memsize_of(object) + @rvalue_size
98
+ # compensate for API bug
99
+ mem_usage = @rvalue_size if mem_usage > 100_000_000_000
92
100
  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 }
93
101
  result[:objects].push(obj)
94
102
  else
@@ -1,3 +1,3 @@
1
1
  module MemKit
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.6"
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.5
4
+ version: 0.1.6
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-12 00:00:00.000000000 Z
11
+ date: 2016-09-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler