bench_press 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/bench_press.gemspec +8 -6
- data/examples/array_vs_string_concatenation.rb +30 -0
- data/lib/bench_press.rb +7 -2
- data/lib/bench_press/report.rb +0 -26
- data/lib/bench_press/runnable.rb +3 -1
- data/spec/bench_press_spec.rb +1 -0
- data/spec/spec.opts +2 -0
- metadata +39 -18
data/Rakefile
CHANGED
@@ -12,7 +12,7 @@ begin
|
|
12
12
|
gem.authors = ["Sandro Turriate"]
|
13
13
|
gem.add_dependency "facter", "1.5.7"
|
14
14
|
gem.add_dependency "activesupport", "2.3.5"
|
15
|
-
gem.add_development_dependency "rspec", "1.
|
15
|
+
gem.add_development_dependency "rspec", "1.3.0"
|
16
16
|
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
17
17
|
end
|
18
18
|
Jeweler::GemcutterTasks.new
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.3
|
data/bench_press.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{bench_press}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Sandro Turriate"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-03-13}
|
13
13
|
s.default_executable = %q{bench_press}
|
14
14
|
s.description = %q{Sharable benchmarks}
|
15
15
|
s.email = %q{sandro.turriate@gmail.com}
|
@@ -40,12 +40,13 @@ Gem::Specification.new do |s|
|
|
40
40
|
"spec/bench_press/result_spec.rb",
|
41
41
|
"spec/bench_press/system_information_spec.rb",
|
42
42
|
"spec/bench_press_spec.rb",
|
43
|
+
"spec/spec.opts",
|
43
44
|
"spec/spec_helper.rb"
|
44
45
|
]
|
45
46
|
s.homepage = %q{http://github.com/sandro/bench_press}
|
46
47
|
s.rdoc_options = ["--charset=UTF-8"]
|
47
48
|
s.require_paths = ["lib"]
|
48
|
-
s.rubygems_version = %q{1.3.
|
49
|
+
s.rubygems_version = %q{1.3.6}
|
49
50
|
s.summary = %q{Sharable benchmarks}
|
50
51
|
s.test_files = [
|
51
52
|
"spec/bench_press/report_spec.rb",
|
@@ -53,6 +54,7 @@ Gem::Specification.new do |s|
|
|
53
54
|
"spec/bench_press/system_information_spec.rb",
|
54
55
|
"spec/bench_press_spec.rb",
|
55
56
|
"spec/spec_helper.rb",
|
57
|
+
"examples/array_vs_string_concatenation.rb",
|
56
58
|
"examples/compare_rr_to_rspec.rb",
|
57
59
|
"examples/existence_of_method.rb",
|
58
60
|
"examples/hash_merge.rb",
|
@@ -66,16 +68,16 @@ Gem::Specification.new do |s|
|
|
66
68
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
67
69
|
s.add_runtime_dependency(%q<facter>, ["= 1.5.7"])
|
68
70
|
s.add_runtime_dependency(%q<activesupport>, ["= 2.3.5"])
|
69
|
-
s.add_development_dependency(%q<rspec>, ["= 1.
|
71
|
+
s.add_development_dependency(%q<rspec>, ["= 1.3.0"])
|
70
72
|
else
|
71
73
|
s.add_dependency(%q<facter>, ["= 1.5.7"])
|
72
74
|
s.add_dependency(%q<activesupport>, ["= 2.3.5"])
|
73
|
-
s.add_dependency(%q<rspec>, ["= 1.
|
75
|
+
s.add_dependency(%q<rspec>, ["= 1.3.0"])
|
74
76
|
end
|
75
77
|
else
|
76
78
|
s.add_dependency(%q<facter>, ["= 1.5.7"])
|
77
79
|
s.add_dependency(%q<activesupport>, ["= 2.3.5"])
|
78
|
-
s.add_dependency(%q<rspec>, ["= 1.
|
80
|
+
s.add_dependency(%q<rspec>, ["= 1.3.0"])
|
79
81
|
end
|
80
82
|
end
|
81
83
|
|
@@ -0,0 +1,30 @@
|
|
1
|
+
$:.unshift(File.dirname(__FILE__) + "/../lib")
|
2
|
+
require 'bench_press'
|
3
|
+
|
4
|
+
extend BenchPress
|
5
|
+
|
6
|
+
reps 100_000
|
7
|
+
array = []
|
8
|
+
measure "Array#<<" do |repetition|
|
9
|
+
array << "1234567890"
|
10
|
+
end
|
11
|
+
|
12
|
+
string = ""
|
13
|
+
measure "String#<<" do |repetition|
|
14
|
+
string << "1234567890"
|
15
|
+
end
|
16
|
+
|
17
|
+
a = (1..1000).to_a
|
18
|
+
measure "Array#clear" do
|
19
|
+
a.dup.clear
|
20
|
+
end
|
21
|
+
|
22
|
+
measure "Array#replace" do
|
23
|
+
a.dup
|
24
|
+
a.replace []
|
25
|
+
end
|
26
|
+
|
27
|
+
measure "Re-assigning to new array" do
|
28
|
+
a.dup
|
29
|
+
a = []
|
30
|
+
end
|
data/lib/bench_press.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'active_support/inflector'
|
2
|
+
require 'date'
|
2
3
|
require 'benchmark'
|
3
4
|
require 'facter'
|
4
5
|
require 'bench_press/runnable'
|
@@ -7,7 +8,7 @@ require 'bench_press/report'
|
|
7
8
|
require 'bench_press/system_information'
|
8
9
|
|
9
10
|
module BenchPress
|
10
|
-
VERSION = '0.1.
|
11
|
+
VERSION = '0.1.3'
|
11
12
|
|
12
13
|
def self.extended(base)
|
13
14
|
base.instance_variable_set(:@module_name, base.name) if base.respond_to?(:name)
|
@@ -59,12 +60,16 @@ module BenchPress
|
|
59
60
|
protected
|
60
61
|
|
61
62
|
def default_report_name
|
62
|
-
module_name || ActiveSupport::Inflector.titleize(File.basename(
|
63
|
+
module_name || ActiveSupport::Inflector.titleize(File.basename(calling_script, ".rb"))
|
63
64
|
end
|
64
65
|
|
65
66
|
def report_name
|
66
67
|
name || default_report_name
|
67
68
|
end
|
69
|
+
|
70
|
+
def calling_script
|
71
|
+
$0
|
72
|
+
end
|
68
73
|
end
|
69
74
|
|
70
75
|
at_exit do
|
data/lib/bench_press/report.rb
CHANGED
@@ -113,29 +113,3 @@ module BenchPress
|
|
113
113
|
end
|
114
114
|
end
|
115
115
|
end
|
116
|
-
|
117
|
-
__END__
|
118
|
-
|
119
|
-
HASH MERGE
|
120
|
-
===========
|
121
|
-
Author: Sandro Turriate
|
122
|
-
Date: 12-12-09
|
123
|
-
Summary: Fastest way to merge or append a hash to another hash
|
124
|
-
|
125
|
-
System Information
|
126
|
-
------------------
|
127
|
-
Operating System: Mac OS X 10.6.2 (10C540)
|
128
|
-
CPU: Intel Core 2 Duo 2.4 GHz
|
129
|
-
Processor Count: 2
|
130
|
-
Memory: 4 GB
|
131
|
-
Ruby version: 1.8.7 patchlevel 174
|
132
|
-
|
133
|
-
|
134
|
-
"Implicit return" is up to 17% faster over 1000 repetitions
|
135
|
-
-----------------------------------------------------
|
136
|
-
Implicit Return 0.00029 secs Fastest
|
137
|
-
Explicit 0.00035 secs 17% Slower
|
138
|
-
|
139
|
-
50% faster is 25 secs rather than 50, 50x = (50-25)
|
140
|
-
35x = (35-29) = 17%
|
141
|
-
.00035x = .00006
|
data/lib/bench_press/runnable.rb
CHANGED
data/spec/bench_press_spec.rb
CHANGED
data/spec/spec.opts
ADDED
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bench_press
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 1
|
8
|
+
- 3
|
9
|
+
version: 0.1.3
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Sandro Turriate
|
@@ -9,39 +14,51 @@ autorequire:
|
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date: 2010-
|
17
|
+
date: 2010-03-13 00:00:00 -05:00
|
13
18
|
default_executable: bench_press
|
14
19
|
dependencies:
|
15
20
|
- !ruby/object:Gem::Dependency
|
16
21
|
name: facter
|
17
|
-
|
18
|
-
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
24
|
requirements:
|
21
25
|
- - "="
|
22
26
|
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 1
|
29
|
+
- 5
|
30
|
+
- 7
|
23
31
|
version: 1.5.7
|
24
|
-
|
32
|
+
type: :runtime
|
33
|
+
version_requirements: *id001
|
25
34
|
- !ruby/object:Gem::Dependency
|
26
35
|
name: activesupport
|
27
|
-
|
28
|
-
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
30
38
|
requirements:
|
31
39
|
- - "="
|
32
40
|
- !ruby/object:Gem::Version
|
41
|
+
segments:
|
42
|
+
- 2
|
43
|
+
- 3
|
44
|
+
- 5
|
33
45
|
version: 2.3.5
|
34
|
-
|
46
|
+
type: :runtime
|
47
|
+
version_requirements: *id002
|
35
48
|
- !ruby/object:Gem::Dependency
|
36
49
|
name: rspec
|
37
|
-
|
38
|
-
|
39
|
-
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
40
52
|
requirements:
|
41
53
|
- - "="
|
42
54
|
- !ruby/object:Gem::Version
|
43
|
-
|
44
|
-
|
55
|
+
segments:
|
56
|
+
- 1
|
57
|
+
- 3
|
58
|
+
- 0
|
59
|
+
version: 1.3.0
|
60
|
+
type: :development
|
61
|
+
version_requirements: *id003
|
45
62
|
description: Sharable benchmarks
|
46
63
|
email: sandro.turriate@gmail.com
|
47
64
|
executables:
|
@@ -73,6 +90,7 @@ files:
|
|
73
90
|
- spec/bench_press/result_spec.rb
|
74
91
|
- spec/bench_press/system_information_spec.rb
|
75
92
|
- spec/bench_press_spec.rb
|
93
|
+
- spec/spec.opts
|
76
94
|
- spec/spec_helper.rb
|
77
95
|
- TODO
|
78
96
|
has_rdoc: true
|
@@ -88,18 +106,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
88
106
|
requirements:
|
89
107
|
- - ">="
|
90
108
|
- !ruby/object:Gem::Version
|
109
|
+
segments:
|
110
|
+
- 0
|
91
111
|
version: "0"
|
92
|
-
version:
|
93
112
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
94
113
|
requirements:
|
95
114
|
- - ">="
|
96
115
|
- !ruby/object:Gem::Version
|
116
|
+
segments:
|
117
|
+
- 0
|
97
118
|
version: "0"
|
98
|
-
version:
|
99
119
|
requirements: []
|
100
120
|
|
101
121
|
rubyforge_project:
|
102
|
-
rubygems_version: 1.3.
|
122
|
+
rubygems_version: 1.3.6
|
103
123
|
signing_key:
|
104
124
|
specification_version: 3
|
105
125
|
summary: Sharable benchmarks
|
@@ -109,6 +129,7 @@ test_files:
|
|
109
129
|
- spec/bench_press/system_information_spec.rb
|
110
130
|
- spec/bench_press_spec.rb
|
111
131
|
- spec/spec_helper.rb
|
132
|
+
- examples/array_vs_string_concatenation.rb
|
112
133
|
- examples/compare_rr_to_rspec.rb
|
113
134
|
- examples/existence_of_method.rb
|
114
135
|
- examples/hash_merge.rb
|