tiny_mem 1.0.0 → 1.1.0

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 +4 -4
  2. data/lib/tiny_mem.rb +23 -11
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 86d1b1c882d9d7a03aa77b23e8e217dbf234a1f3872fd4fbe80f00a199444cda
4
- data.tar.gz: 1389b27193ae7e730a1a23a8cb335719ab102a9703de0265717b030626e77009
3
+ metadata.gz: 863da6bc807b7eca5003a2452283a7d70a644eacdd1153b17044de16fea4432e
4
+ data.tar.gz: bde9e359f2b2029f8d35b55bf3469a2897cd4010d7e460916e325ce0979cf663
5
5
  SHA512:
6
- metadata.gz: 9a5ad2536b22b46c8fe5a2b5f606fb1764775d763a67377caac3146c1856d174b5a5edf1614d775bae7565ca64a115e49dc6c48ddbd5276fb697ccdf63f1fb8f
7
- data.tar.gz: 192e48a1adb9ca321e8ef5641899a93ceb94b070dae4ef484e0de73f3a1a73278bde8662b90675eb4e3385c6f740b662369209beceaa743e13692a68b9b436bd
6
+ metadata.gz: 1dccffe688a1e262d061dcc1fd7323782d76107684095b5a49de29650201350e78d437cd4915421510586a21cd0ad1cd7165d8b4d024300cdce2fbced365e8e0
7
+ data.tar.gz: e78d5e3779420fe565ede5da7b9f884bb14c8dd2828eac1fba8631185f8c1ad0b748bd15b1627cb676abf721c222d225d3bdfcfc43fdbbdf4dd3c0b5feae39ce
data/lib/tiny_mem.rb CHANGED
@@ -2,6 +2,14 @@
2
2
  # size (rss) (i.e. total memory allocated and still in use).
3
3
  #
4
4
  # ex:
5
+ # # track a single measurement
6
+ # TinyMem.measure do
7
+ # Array.new(100_000) { 'hello' }
8
+ # end
9
+ #
10
+ # => [70568, 72732, 2164]
11
+ #
12
+ # # track measurements over time
5
13
  # mem = TinyMem.new
6
14
  # mem.measure 'array_alloc' do
7
15
  # Array.new(100_000) { 'hello' }
@@ -9,15 +17,11 @@
9
17
  #
10
18
  # mem.measure 'nothing'
11
19
  #
12
- # pp mem.stats
13
- # ```
14
- #
15
- # this would output something like:
16
- #
17
- # [
18
- # ["array_alloc", 70568, 72732, 2164 ],
19
- # ["nothing", 72744, 72744, 0 ]
20
- # ] ^label ^before ^after ^change ... in kilobytes
20
+ # > mem.stats
21
+ # => [
22
+ # ["array_alloc", 70568, 72732, 2164 ],
23
+ # ["nothing", 72744, 72744, 0 ]
24
+ # ] ^label ^before ^after ^diff ... in kilobytes
21
25
  class TinyMem
22
26
  attr_reader :stats
23
27
 
@@ -26,15 +30,23 @@ class TinyMem
26
30
  end
27
31
 
28
32
  def measure(label)
33
+ before, after, diff = TinyMem.measure do
34
+ yield if block_given?
35
+ end
36
+
37
+ @stats << [label, before, after, diff]
38
+ end
39
+
40
+ def self.measure
29
41
  pid = Process.pid
30
42
  before = _mem
31
43
  yield if block_given?
32
44
  after = _mem
33
45
 
34
- @stats << [label, before, after, after-before]
46
+ [before, after, after-before]
35
47
  end
36
48
 
37
- def _mem
49
+ def self._mem
38
50
  case RUBY_PLATFORM
39
51
  when /linux/
40
52
  begin
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tiny_mem
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
  - Jeff Lunt