memeasure 0.0.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.
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: