memstat 0.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.
@@ -0,0 +1,40 @@
1
+ Name: ruby
2
+ State: S (sleeping)
3
+ Tgid: 1398
4
+ Pid: 1398
5
+ PPid: 1
6
+ TracerPid: 0
7
+ Uid: 0 0 0 0
8
+ Gid: 0 0 0 0
9
+ FDSize: 64
10
+ Groups: 0
11
+ VmPeak: 277756 kB
12
+ VmSize: 277756 kB
13
+ VmLck: 0 kB
14
+ VmPin: 0 kB
15
+ VmHWM: 131044 kB
16
+ VmRSS: 131044 kB
17
+ VmData: 133064 kB
18
+ VmStk: 136 kB
19
+ VmExe: 4 kB
20
+ VmLib: 21524 kB
21
+ VmPTE: 540 kB
22
+ VmSwap: 0 kB
23
+ Threads: 3
24
+ SigQ: 1/31462
25
+ SigPnd: 0000000000000000
26
+ ShdPnd: 0000000000000000
27
+ SigBlk: 0000000000000000
28
+ SigIgn: 0000000000001000
29
+ SigCgt: 000000018a316e47
30
+ CapInh: 0000000000000000
31
+ CapPrm: 0000001fffffffff
32
+ CapEff: 0000001fffffffff
33
+ CapBnd: 0000001fffffffff
34
+ Seccomp: 0
35
+ Cpus_allowed: ff
36
+ Cpus_allowed_list: 0-7
37
+ Mems_allowed: 00000000,00000001
38
+ Mems_allowed_list: 0
39
+ voluntary_ctxt_switches: 3518
40
+ nonvoluntary_ctxt_switches: 106
@@ -0,0 +1,53 @@
1
+ require 'memstat'
2
+ require 'minitest/autorun'
3
+ require 'benchmark'
4
+
5
+ class TestCli < Minitest::Test
6
+ SMAPS_PATH = File.expand_path('../../test/files/smaps.txt', __FILE__)
7
+ STATUS_PATH = File.expand_path('../../test/files/status.txt', __FILE__)
8
+
9
+ def test_print
10
+ smaps = Memstat::Proc::Smaps.new(:path => SMAPS_PATH)
11
+ puts smaps.print
12
+ STDOUT.flush
13
+ end
14
+
15
+ def test_smaps
16
+ smaps = Memstat::Proc::Smaps.new(:path => SMAPS_PATH)
17
+
18
+ assert_equal smaps.size, 277760 * 1024
19
+ assert_equal smaps.rss, 131032 * 1024
20
+ assert_equal smaps.pss, 75944 * 1024
21
+ assert_equal smaps.shared_clean, 8504 * 1024
22
+ assert_equal smaps.shared_dirty, 53716 * 1024
23
+ assert_equal smaps.private_clean, 4 * 1024
24
+ assert_equal smaps.private_dirty, 68808 * 1024
25
+ assert_equal smaps.swap, 0 * 1024
26
+ end
27
+
28
+ def test_status
29
+ status = Memstat::Proc::Status.new(:path => STATUS_PATH)
30
+
31
+ assert_equal status.peak, 277756 * 1024
32
+ assert_equal status.size, 277756 * 1024
33
+ assert_equal status.lck, 0 * 1024
34
+ assert_equal status.pin, 0 * 1024
35
+ assert_equal status.hwm, 131044 * 1024
36
+ assert_equal status.rss, 131044 * 1024
37
+ assert_equal status.data, 133064 * 1024
38
+ assert_equal status.peak, 277756 * 1024
39
+ assert_equal status.stk, 136 * 1024
40
+ assert_equal status.exe, 4 * 1024
41
+ assert_equal status.lib, 21524 * 1024
42
+ assert_equal status.pte, 540 * 1024
43
+ assert_equal status.swap, 0 * 1024
44
+ end
45
+
46
+ def test_benchmark
47
+ n = 100
48
+ Benchmark.bm(10) do |x|
49
+ x.report("ps:") { n.times.each { `ps -o rss -p #{$$}`.strip.split.last.to_i } }
50
+ x.report("memstat:") { n.times.each { Memstat::Proc::Status.new(:path => STATUS_PATH).rss } }
51
+ end
52
+ end
53
+ end
metadata ADDED
@@ -0,0 +1,121 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: memstat
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Kenn Ejima
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-04-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: thor
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: Fast memory statistics
70
+ email:
71
+ - kenn.ejima@gmail.com
72
+ executables:
73
+ - memstat
74
+ extensions: []
75
+ extra_rdoc_files: []
76
+ files:
77
+ - ".gitignore"
78
+ - Gemfile
79
+ - LICENSE.txt
80
+ - README.md
81
+ - Rakefile
82
+ - bin/memstat
83
+ - lib/memstat.rb
84
+ - lib/memstat/cli.rb
85
+ - lib/memstat/oob_gc/unicorn.rb
86
+ - lib/memstat/proc/base.rb
87
+ - lib/memstat/proc/smaps.rb
88
+ - lib/memstat/proc/status.rb
89
+ - lib/memstat/version.rb
90
+ - memstat.gemspec
91
+ - test/files/smaps.txt
92
+ - test/files/status.txt
93
+ - test/test_memstat.rb
94
+ homepage: ''
95
+ licenses:
96
+ - MIT
97
+ metadata: {}
98
+ post_install_message:
99
+ rdoc_options: []
100
+ require_paths:
101
+ - lib
102
+ required_ruby_version: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: '0'
107
+ required_rubygems_version: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ requirements: []
113
+ rubyforge_project:
114
+ rubygems_version: 2.2.0.rc.1
115
+ signing_key:
116
+ specification_version: 4
117
+ summary: Fast memory statistics
118
+ test_files:
119
+ - test/files/smaps.txt
120
+ - test/files/status.txt
121
+ - test/test_memstat.rb