memory_usage 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/memory_usage +73 -0
  2. data.tar.gz.sig +0 -0
  3. metadata +93 -0
  4. metadata.gz.sig +3 -0
data/memory_usage ADDED
@@ -0,0 +1,73 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ #Class which has function for gathering memory stats.
4
+ # Should work on unix/linux and OS X
5
+ # Example usage at the bottom
6
+ class MemoryUsage
7
+
8
+ def initialize
9
+ refresh
10
+ end
11
+
12
+ #Recalculate Memory usage. stops have to call MemoryUsage.new
13
+ def refresh
14
+ #Based on: http://gist.github.com/290988
15
+ @total = 0.0
16
+ @usage = Array.new
17
+ @max = {:pid=>0, :rss=>0, :command=>0}
18
+
19
+ `ps -u $USER -o pid,rss,command`.split("\n").each do |p|
20
+ p.strip!
21
+ if p.match(/^\d/)
22
+ p =~ /(\d+)\s+(\d+)\s+(.+)/
23
+
24
+ pid, rss, command = [$1, $2, $3]
25
+ rss = rss.to_f
26
+ @usage << {:pid=>pid, :rss=>(rss/1024), :command=>command }
27
+ @total += rss/1024
28
+
29
+ if pid.to_s.size > @max[:pid]
30
+ @max[:pid] = pid.to_s.size
31
+ end
32
+
33
+ if rss.to_s.size > @max[:rss]
34
+ @max[:rss] = rss.to_s.size
35
+ end
36
+
37
+ if command.size > @max[:command]
38
+ @max[:command] = command.size
39
+ end
40
+ #puts pid + (" %.2f MB " % (rss/1024)) + command
41
+
42
+ end
43
+ end
44
+ @usage = @usage.sort_by { |process| process[:rss] }
45
+ #puts "Your total usage: %.2f MB" % (total / 1024)
46
+
47
+ end
48
+
49
+ #Display to stdout Error report
50
+ def report
51
+ @usage.each do |x|
52
+ #rjust string.rjust(min length)
53
+ puts x[:pid].rjust( @max[:pid] ) + (" %.2f MB " % x[:rss]).rjust( @max[:rss]+3 ) + x[:command]
54
+ end
55
+ puts "Total Memory Usage: %.2f MB" % @total
56
+ end
57
+
58
+ #Return total memory as a String
59
+ def total
60
+ "%.2f" % @total
61
+ end
62
+ end
63
+
64
+ #Run example only if called directly
65
+ #ie not if included/required for class
66
+ if $0 == __FILE__
67
+ a = MemoryUsage.new
68
+ a.report
69
+
70
+ #a.refresh
71
+ #a.report
72
+ #puts a.total
73
+ end
data.tar.gz.sig ADDED
Binary file
metadata ADDED
@@ -0,0 +1,93 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: memory_usage
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - Morgan Prior
14
+ autorequire:
15
+ bindir: ./
16
+ cert_chain:
17
+ - |
18
+ -----BEGIN CERTIFICATE-----
19
+ MIIDYDCCAkigAwIBAgIBADANBgkqhkiG9w0BAQUFADBWMQ8wDQYDVQQDDAZtb3Jn
20
+ YW4xGzAZBgoJkiaJk/IsZAEZFgthbWFyYXMtdGVjaDESMBAGCgmSJomT8ixkARkW
21
+ AmNvMRIwEAYKCZImiZPyLGQBGRYCdWswHhcNMTAwNjE3MjE1NDA5WhcNMTEwNjE3
22
+ MjE1NDA5WjBWMQ8wDQYDVQQDDAZtb3JnYW4xGzAZBgoJkiaJk/IsZAEZFgthbWFy
23
+ YXMtdGVjaDESMBAGCgmSJomT8ixkARkWAmNvMRIwEAYKCZImiZPyLGQBGRYCdWsw
24
+ ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCwrtycRJYlXap7xOCz9DIQ
25
+ eplZNDBFKeLdhf61OC5ziuVfUoBo/wMfJReJYg6HnpSyPFseQRyF/Lv8GFZsanKR
26
+ IIXrnDIQHP4NPaiivk21nJZzKTO772W2lN8lgsnmVrqLXh0JpTvoosT/AGJv59yC
27
+ qA6Lmv8YH+D5Ik/ASvPDEwHGupN9i9Iu3yZkxxwrh9iVQpO6gqeAFaZlCX9lAYEE
28
+ b1iJP1pHADRBkXCkAANsFh47lNGmdd/aOjxvB2ud6EeM6hR/bs/K0CtwvEXcCLKq
29
+ aRBZOd1WXMvao//5and93jiKODAFQiGKm6IUM6NEaRdi+7DKpSNJ0ADmwiZh9wVL
30
+ AgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBRWzvVM
31
+ u+0wmMKPN22EzVn8dERBPTANBgkqhkiG9w0BAQUFAAOCAQEAmc7PRxKyGdiHPydL
32
+ JL3a+aUDPtxDsMXlGOreLghcX3I/hbo0s0hIPXoG8PH8ZjMbk4aEJjaxWwFYxxDP
33
+ uWP2bajqSzNp3JK9VRvb2UqPHzSgr59EDuYJCVHZT0JcDKLz329M5ca25dI0q3f6
34
+ 0BJWgpEvVDd5C+SDvmWcAtmk5zS7g4HULEdzgyQY376dhgJDBV7KkFm63hYawV0z
35
+ oehw1Jj8Wtoci3lCoN+P/oYIQAEY+H+8vEPc29FXin0vf8GfFK8PlTwld6uvPJma
36
+ D0AenN9JtIH85Fr3jHvIXO6a4g05UWbtt7FaLSMm00KBRKETv7Pig8MU6+l9rKkr
37
+ S15HRQ==
38
+ -----END CERTIFICATE-----
39
+
40
+ date: 2010-06-17 00:00:00 +01:00
41
+ default_executable:
42
+ dependencies: []
43
+
44
+ description: |-
45
+ Reports memory used by all current user processes
46
+ This relies on command line tools available in unix, so will not
47
+ work on windows but all unix, linux and Mac OS X machines should be fine.
48
+ This can be executed stand alone or required and used as an object type.
49
+ email: memory_usage_gem@amaras-tech.co.uk
50
+ executables:
51
+ - memory_usage
52
+ extensions: []
53
+
54
+ extra_rdoc_files: []
55
+
56
+ files:
57
+ - ./memory_usage
58
+ has_rdoc: true
59
+ homepage:
60
+ licenses: []
61
+
62
+ post_install_message: To use 'memory_usage' as a standalone application your gems folder must be on your path
63
+ rdoc_options: []
64
+
65
+ require_paths:
66
+ - lib
67
+ required_ruby_version: !ruby/object:Gem::Requirement
68
+ none: false
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ hash: 3
73
+ segments:
74
+ - 0
75
+ version: "0"
76
+ required_rubygems_version: !ruby/object:Gem::Requirement
77
+ none: false
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ hash: 3
82
+ segments:
83
+ - 0
84
+ version: "0"
85
+ requirements: []
86
+
87
+ rubyforge_project:
88
+ rubygems_version: 1.3.7
89
+ signing_key:
90
+ specification_version: 3
91
+ summary: Report memory usage on Mac OS X, Linux and Unix.
92
+ test_files: []
93
+
metadata.gz.sig ADDED
@@ -0,0 +1,3 @@
1
+ W��e�#�� 0@5�D�)϶9(�:lڱ�2n4��L�jhh �@�S6샯�����) !*u���Q�*8,�����#�G�~}G��Ie�A�D!z�Bm� aW�����ng��l���*/NBڭ����8��y�k9�nC :�r^�VH�,���\�
2
+ �|����a��η9�>�k:v2k6���9���
3
+ b�"y�h�ʵ�p�P�Y2�W��D������?+ƧA"���ٵ�J���2�0e���`��T�O���c����