padrino-performance 0.11.2 → 0.11.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +37 -11
- data/lib/padrino-performance/os.rb +6 -6
- data/lib/padrino-performance/version.rb +1 -1
- data/lib/suites/json.rb +3 -3
- data/lib/suites/mem.rb +3 -3
- data/test/helper.rb +12 -0
- data/test/test_os.rb +61 -0
- data/test/test_padrino_performance.rb +5 -0
- metadata +14 -13
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 88cb559c62adba63d3a93b43bc2f8b26a08c55c1
|
4
|
+
data.tar.gz: 21155bbb6357a3103c8348803a1b8057eb1bfb26
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 3bc9418c45e2b30af1b70efdf6dbf807817856a4e671c99a11f5598c2d2526c62c7ab13316c33c148e6ede9a9a124f5ff6075b8aa335374bd7b0500efba451c7
|
7
|
+
data.tar.gz: 0652c403a0d9c8b006aaeb0363362e3fc12475e00f698cc9a345cfb88854ab851fecd27d39425980e45da3c3276af10d5979781d6b0ff64e1e083f08cb491ed9
|
data/README.md
CHANGED
@@ -2,23 +2,49 @@
|
|
2
2
|
|
3
3
|
Performance tools for Padrino.
|
4
4
|
|
5
|
-
## "Installation"
|
6
5
|
|
7
|
-
|
6
|
+
## Installation
|
8
7
|
|
9
|
-
|
8
|
+
Add `padrino-performance` to your `Gemfile` of your Padrino application.
|
10
9
|
|
11
|
-
|
12
|
-
* Memory.
|
10
|
+
Install the gem with
|
13
11
|
|
14
|
-
|
12
|
+
$ bundle install
|
15
13
|
|
16
|
-
|
14
|
+
|
15
|
+
## Available suites
|
16
|
+
|
17
|
+
- JSON: Tell you if you have conflicting libraries being declared in your `Gemfile`. Why? Because they would nearly do the same job and this will help you to detect it.
|
18
|
+
- You can it by passing the `-j` or `--json` option.
|
19
|
+
- Memory: Print the memory usage of your application when it is started.
|
20
|
+
- You can it by passing the `-j` or `--json` option.
|
21
|
+
|
22
|
+
|
23
|
+
## Usage
|
24
|
+
|
25
|
+
`bundle exec padrino-performance SUITE -- bundle exec padrino COMMAND`
|
17
26
|
|
18
27
|
E.g.:
|
19
28
|
|
20
|
-
|
21
|
-
|
29
|
+
- Measure json on a console:
|
30
|
+
|
31
|
+
bundle exec padrino-performance -j -- bundle exec padrino console
|
32
|
+
>> require 'json'
|
33
|
+
>> require 'json_pure'
|
34
|
+
|
35
|
+
Then you will get some error reports in the terminal, which indicates that you have
|
36
|
+
conflicting json libraries that do the same
|
37
|
+
|
38
|
+
|
39
|
+
- Measure memory on a running app:
|
40
|
+
|
41
|
+
bundle exec padrino-performance -m -- bundle exec padrino start
|
42
|
+
# The output will be the following
|
43
|
+
|
44
|
+
total 44056K
|
45
|
+
total 44980K
|
46
|
+
=> Padrino/0.11.2 has taken the stage development at http://127.0.0.1:3000
|
47
|
+
>> Thin web server (v1.5.1 codename Straight Razor)
|
48
|
+
>> Maximum connections set to 1024
|
49
|
+
>> Listening on 127.0.0.1:3000, CTRL+C to stop
|
22
50
|
|
23
|
-
* Measure memory on a running app:
|
24
|
-
```bundle exec padrino-performance -m -- bundle exec padrino start```
|
@@ -1,14 +1,14 @@
|
|
1
1
|
module Padrino
|
2
2
|
module Performance
|
3
|
-
# OS detection useful for targeting CLI commands
|
3
|
+
# OS detection useful for targeting CLI commands.
|
4
4
|
# Source: http://stackoverflow.com/questions/170956/how-can-i-find-which-operating-system-my-ruby-program-is-running-on
|
5
5
|
module OS
|
6
6
|
def self.windows?
|
7
|
-
(/cygwin|mswin|mingw|bccwin|wince|emx/ =~
|
7
|
+
(/cygwin|mswin|mingw|bccwin|wince|emx/ =~ RbConfig::CONFIG['target_os']) != nil
|
8
8
|
end
|
9
9
|
|
10
10
|
def self.mac?
|
11
|
-
(/darwin/ =~
|
11
|
+
(/darwin/ =~ RbConfig::CONFIG['target_os']) != nil
|
12
12
|
end
|
13
13
|
|
14
14
|
def self.unix?
|
@@ -18,6 +18,6 @@ module Padrino
|
|
18
18
|
def self.linux?
|
19
19
|
self.unix? and not self.mac?
|
20
20
|
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/suites/json.rb
CHANGED
@@ -32,9 +32,9 @@ following call stacks to see who loaded the offending libraries
|
|
32
32
|
and contact the authors if necessary:"
|
33
33
|
WARN
|
34
34
|
loaded_libs.each do |name, stack|
|
35
|
-
$stderr.puts "
|
35
|
+
$stderr.puts "=================="
|
36
36
|
$stderr.puts "libname: " + name
|
37
|
-
$stderr.puts "
|
37
|
+
$stderr.puts "=================="
|
38
38
|
$stderr.puts caller
|
39
39
|
end
|
40
40
|
end
|
@@ -45,7 +45,7 @@ WARN
|
|
45
45
|
end
|
46
46
|
|
47
47
|
infect_require!
|
48
|
-
setup_captures!("json", "json_pure", "yajl", "oj", "crack"
|
48
|
+
setup_captures!("json", "json_pure", "yajl-ruby", "oj", "crack")
|
49
49
|
end # JSON
|
50
50
|
# Performance
|
51
51
|
end
|
data/lib/suites/mem.rb
CHANGED
@@ -22,12 +22,12 @@ module Padrino
|
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
before_load do
|
27
|
-
puts
|
27
|
+
puts "Memory before the application is loaded: #{perf_memusage_command}"
|
28
28
|
end
|
29
29
|
|
30
30
|
after_load do
|
31
|
-
puts
|
31
|
+
puts "Memory usage after loading the application: #{perf_memusage_command}"
|
32
32
|
end
|
33
33
|
end
|
data/test/helper.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
require File.expand_path('../../../load_paths', __FILE__)
|
2
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'padrino-core', 'test', 'mini_shoulda')
|
3
|
+
|
4
|
+
require 'padrino-core'
|
5
|
+
require 'padrino-performance'
|
6
|
+
require 'rack'
|
7
|
+
require 'rack/test'
|
8
|
+
|
9
|
+
class MiniTest::Spec
|
10
|
+
include Rack::Test::Methods
|
11
|
+
end
|
12
|
+
|
data/test/test_os.rb
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/helper')
|
2
|
+
|
3
|
+
describe "Padrino Performance OS Module" do
|
4
|
+
WINDOWS_RELATED_SYSTEMS = %w(cygwin mswin mingw bccwin wince emx)
|
5
|
+
|
6
|
+
context "#windows?" do
|
7
|
+
should "return false if OS is now windows" do
|
8
|
+
RbConfig::CONFIG['target_os'] = "linux"
|
9
|
+
refute(Padrino::Performance::OS.windows?, "No non windows system given")
|
10
|
+
end
|
11
|
+
|
12
|
+
should "return true if we have some windows instance" do
|
13
|
+
WINDOWS_RELATED_SYSTEMS.each do |system|
|
14
|
+
RbConfig::CONFIG['target_os'] = system
|
15
|
+
assert(Padrino::Performance::OS.windows?, "#{system} is no windows related operation system.")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
context "#mac?" do
|
21
|
+
should "return true if we have darwin running" do
|
22
|
+
RbConfig::CONFIG['target_os'] = 'darwin'
|
23
|
+
assert(Padrino::Performance::OS.mac?, "We have no Mac related system running")
|
24
|
+
end
|
25
|
+
|
26
|
+
should "return false if we have linux running" do
|
27
|
+
RbConfig::CONFIG['target_os'] = 'linux'
|
28
|
+
refute(Padrino::Performance::OS.mac?, "We have no Mac related system running")
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
context "#unix?" do
|
33
|
+
should "return true if OS is not windows" do
|
34
|
+
RbConfig::CONFIG['target_os'] = 'linux'
|
35
|
+
assert(Padrino::Performance::OS.unix?, "We have no windows related system running")
|
36
|
+
end
|
37
|
+
|
38
|
+
should "return false if OS is windows" do
|
39
|
+
WINDOWS_RELATED_SYSTEMS.each do |system|
|
40
|
+
RbConfig::CONFIG['target_os'] = system
|
41
|
+
refute(Padrino::Performance::OS.unix?, "#{system} is windows related operation system.")
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
context "#linux?" do
|
47
|
+
should "return true if we have no Windows or Mac related OS" do
|
48
|
+
RbConfig::CONFIG['target_os'] = 'linux'
|
49
|
+
assert(Padrino::Performance::OS.linux?, 'We have either Mac or Windows operation system.')
|
50
|
+
end
|
51
|
+
|
52
|
+
should "return false if we have a Windows or Mac related OS" do
|
53
|
+
RbConfig::CONFIG['target_os'] = 'mingw'
|
54
|
+
refute(Padrino::Performance::OS.linux?, 'We a Windows related operation system.')
|
55
|
+
|
56
|
+
RbConfig::CONFIG['target_os'] = 'darwin'
|
57
|
+
refute(Padrino::Performance::OS.linux?, 'We a darwin operation system.')
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: padrino-performance
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.11.
|
5
|
-
prerelease:
|
4
|
+
version: 0.11.4
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Padrino Team
|
@@ -15,7 +14,7 @@ authors:
|
|
15
14
|
autorequire:
|
16
15
|
bindir: bin
|
17
16
|
cert_chain: []
|
18
|
-
date: 2013-
|
17
|
+
date: 2013-09-24 00:00:00.000000000 Z
|
19
18
|
dependencies: []
|
20
19
|
description: A gem for finding performance problems in Padrino by tracking loads and
|
21
20
|
memory consumption.
|
@@ -35,33 +34,35 @@ files:
|
|
35
34
|
- lib/suites/json.rb
|
36
35
|
- lib/suites/mem.rb
|
37
36
|
- padrino-performance.gemspec
|
37
|
+
- test/helper.rb
|
38
|
+
- test/test_os.rb
|
39
|
+
- test/test_padrino_performance.rb
|
38
40
|
homepage: http://www.padrinorb.com
|
39
41
|
licenses: []
|
42
|
+
metadata: {}
|
40
43
|
post_install_message:
|
41
44
|
rdoc_options:
|
42
45
|
- --charset=UTF-8
|
43
46
|
require_paths:
|
44
47
|
- lib
|
45
48
|
required_ruby_version: !ruby/object:Gem::Requirement
|
46
|
-
none: false
|
47
49
|
requirements:
|
48
|
-
- -
|
50
|
+
- - '>='
|
49
51
|
- !ruby/object:Gem::Version
|
50
52
|
version: '0'
|
51
|
-
segments:
|
52
|
-
- 0
|
53
|
-
hash: 407263033370610842
|
54
53
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
55
|
-
none: false
|
56
54
|
requirements:
|
57
|
-
- -
|
55
|
+
- - '>='
|
58
56
|
- !ruby/object:Gem::Version
|
59
57
|
version: 1.3.6
|
60
58
|
requirements: []
|
61
59
|
rubyforge_project: padrino-performance
|
62
|
-
rubygems_version:
|
60
|
+
rubygems_version: 2.0.6
|
63
61
|
signing_key:
|
64
|
-
specification_version:
|
62
|
+
specification_version: 4
|
65
63
|
summary: A gem for finding performance problems in Padrino
|
66
|
-
test_files:
|
64
|
+
test_files:
|
65
|
+
- test/helper.rb
|
66
|
+
- test/test_os.rb
|
67
|
+
- test/test_padrino_performance.rb
|
67
68
|
has_rdoc:
|