memeasure 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/measure.rb +32 -0
  3. metadata +45 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 18c8fca71670d0e49d0d40b2ac724f2c6d3a7ccb
4
+ data.tar.gz: f3ba4efe7353dc4e553c2eb63931a51062c3bc4f
5
+ SHA512:
6
+ metadata.gz: 5175eb40683227da652a9656563e7b16c2d78d6f7b2ae2fa3ed1214a45f069d2a6c24f70cf068222130c486fbfda3d8a4da786fdc3d73449460a7c300b54b138
7
+ data.tar.gz: eebe421ecac8d838017bd79f38d250e8cec1546f9df888354f780649689dee74f09d6a2036254b5996755a1f5763a3d82c1ad8d8a47ff4b75e5b8244b6d6f94f
data/lib/measure.rb ADDED
@@ -0,0 +1,32 @@
1
+ class Measure
2
+ extend self
3
+
4
+ def run(options = {gc: :enable})
5
+ if options[:gc] == :disable
6
+ GC.disable
7
+ elsif options[:gc] == :enable
8
+ GC.start
9
+ end
10
+
11
+ memory_before = `ps -o rss= -p #{Process.pid}`.to_i / 1024
12
+ gc_stat_before = GC.stat
13
+
14
+ time = Benchmark.measure do
15
+ yield
16
+ end
17
+
18
+ gc_start_after = GC.stat
19
+ GC.start if options[:gc] == :enable
20
+
21
+ memory_after = `ps -o rss= -p #{Process.pid}`.to_i / 1024
22
+
23
+ puts({
24
+ RUBY_VERSION => {
25
+ gc: options[:gc],
26
+ time: time.round(2),
27
+ gc_acount: gc_state_after[:count].to_i - gc_stat_before[:count].to_i,
28
+ memory: "%d MB" % (memory_after - memory_before)
29
+ }
30
+ }.to_json)
31
+ end
32
+ end
metadata ADDED
@@ -0,0 +1,45 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: memeasure
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Dain Hall
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-12-30 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: A bare bones memory measurement tool for ruby / rails
14
+ email: dainovu3@gmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/measure.rb
20
+ homepage: http://rubygems.org/gems/memeasure
21
+ licenses:
22
+ - MIT
23
+ metadata: {}
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ requirements: []
39
+ rubyforge_project:
40
+ rubygems_version: 2.4.6
41
+ signing_key:
42
+ specification_version: 4
43
+ summary: Basic ruby memory profiling tool
44
+ test_files: []
45
+ has_rdoc: