busy-administrator 1.0.0 → 1.1.0

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: 883afd8faafc52f568eea6a1393d2a945654bcf7
4
- data.tar.gz: a08973fcbc8caddb7db15d787751ebdc5a151235
3
+ metadata.gz: 028975af3001dec517754873ef39df4df057b97f
4
+ data.tar.gz: 4b79d312d9a12f12a0bebb1f23c67a5d3917f4be
5
5
  SHA512:
6
- metadata.gz: 5ad360f51265c9d1a901327d1a2577ea6ae44504f0a5647b7deeba2753112bbfd093723cbbe1f38ee45cca743cddf35df1ef7a1b7e56e756a278a67f51bd40f4
7
- data.tar.gz: a4ea6628c47693c4b551a4e58cea763de0ba9a7ca1897237222e5e491440b7be64ddaa04249e5df9a12985a149de0e050e00bf1fff89ebb83f61fbbee3e35a75
6
+ metadata.gz: e4f27c38524312770087828fb57fdf4556f5254a547bf4e0c9d42e2ec43cef94cbd57c2d172b716087b4ba1205c97d75cedc5b4d99c2324ac8bdb3c00405cdd3
7
+ data.tar.gz: a75c84f74e463cc7631967d3a3f13474db460b4093e8eb3c0fa4683b78c9ca7b1de8bd8d7b4417b48d1fb307a82b1bc30692b5f58e6ad0c619ecf981fab11223
@@ -6,6 +6,7 @@ require 'busy-administrator/memory_size'
6
6
  require 'busy-administrator/memory_utils'
7
7
  require 'busy-administrator/process_utils'
8
8
  require 'busy-administrator/version'
9
+ require 'busy-administrator/memory_middleware'
9
10
 
10
11
  """
11
12
  require 'busy-administrator'
@@ -0,0 +1,49 @@
1
+ module BusyAdministrator
2
+ class MemoryMiddleware
3
+ module Analyzer
4
+ def analyze(key:, value:)
5
+ if analyzer = request.env['busy-administrator-analyzer']
6
+ analyzer.include(key: key, value: value)
7
+ end
8
+ end
9
+ end
10
+
11
+ def initialize(app)
12
+ @app = app
13
+ end
14
+
15
+ def assets_request?(env)
16
+ env['PATH_INFO'].ends_with?('.js') || env['PATH_INFO'].ends_with?('.css')
17
+ end
18
+
19
+ def enabled?
20
+ ENV['BUSY_ADMINISTRATOR_PROFILE'] == "YES"
21
+ end
22
+
23
+ def disabled?
24
+ not enabled?
25
+ end
26
+
27
+ def gc_enabled?
28
+ ENV['BUSY_ADMINISTRATOR_GC_ENABLED'] == "YES"
29
+ end
30
+
31
+ def call(env)
32
+ response = nil
33
+
34
+ if assets_request?(env) || disabled?
35
+ response = @app.call(env)
36
+ else
37
+ results = BusyAdministrator::MemoryUtils.profile(gc_enabled: gc_enabled?) do |analyzer|
38
+ env['busy-administrator-analyzer'] = analyzer
39
+
40
+ response = @app.call(env)
41
+ end
42
+
43
+ BusyAdministrator::Display.debug(results)
44
+ end
45
+
46
+ response
47
+ end
48
+ end
49
+ end
@@ -82,7 +82,7 @@ module BusyAdministrator
82
82
  excluded_object_id_storage = get_created_object_ids
83
83
  log("[Before] Object Count: #{ excluded_object_id_storage.size }", verbose: verbose)
84
84
  end
85
-
85
+
86
86
  action("Get Memory Usage Before Execution") do
87
87
  memory_usage_before = ProcessUtils.get_memory_usage(:rss)
88
88
  output_container[:memory_usage][:before] = memory_usage_before
@@ -147,11 +147,12 @@ module BusyAdministrator
147
147
  general = {}
148
148
 
149
149
  all_object_ids_after_execution.each do |object_id|
150
- target = ObjectSpace._id2ref(object_id)
151
- target_class = target.class.name
150
+ target = ObjectSpace._id2ref(object_id) rescue nil
152
151
 
153
- general[target_class.to_sym] ||= 0
154
- general[target_class.to_sym] += ObjectSpace.memsize_of(target)
152
+ if target_class = target.class.name rescue nil
153
+ general[target_class.to_sym] ||= 0
154
+ general[target_class.to_sym] += ObjectSpace.memsize_of(target)
155
+ end
155
156
  end
156
157
 
157
158
  general.each do |key, value|
@@ -1,3 +1,3 @@
1
1
  module BusyAdministrator
2
- VERSION = '1.0.0'
2
+ VERSION = '1.1.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: busy-administrator
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joshua Arvin Lat
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-25 00:00:00.000000000 Z
11
+ date: 2016-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -48,6 +48,7 @@ files:
48
48
  - lib/busy-administrator.rb
49
49
  - lib/busy-administrator/display.rb
50
50
  - lib/busy-administrator/example_generator.rb
51
+ - lib/busy-administrator/memory_middleware.rb
51
52
  - lib/busy-administrator/memory_size.rb
52
53
  - lib/busy-administrator/memory_utils.rb
53
54
  - lib/busy-administrator/process_utils.rb