benchmark-ips 2.3.0 → 2.10.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.
- checksums.yaml +5 -5
- data/History.md +223 -0
- data/LICENSE +20 -0
- data/README.md +106 -29
- data/examples/advanced.rb +20 -0
- data/examples/hold.rb +41 -0
- data/examples/save.rb +50 -0
- data/examples/simple.rb +47 -0
- data/lib/benchmark/compare.rb +59 -23
- data/lib/benchmark/ips/job/entry.rb +95 -0
- data/lib/benchmark/ips/job/noop_report.rb +27 -0
- data/lib/benchmark/ips/job/stdout_report.rb +64 -0
- data/lib/benchmark/ips/job.rb +211 -150
- data/lib/benchmark/ips/noop_suite.rb +25 -0
- data/lib/benchmark/ips/report.rb +46 -27
- data/lib/benchmark/ips/share.rb +50 -0
- data/lib/benchmark/ips/stats/bootstrap.rb +58 -0
- data/lib/benchmark/ips/stats/sd.rb +45 -0
- data/lib/benchmark/ips/stats/stats_metric.rb +21 -0
- data/lib/benchmark/ips.rb +91 -24
- data/lib/benchmark/timing.rb +39 -16
- metadata +24 -31
- data/.autotest +0 -23
- data/.gemtest +0 -0
- data/History.txt +0 -87
- data/Manifest.txt +0 -11
- data/Rakefile +0 -26
- data/test/test_benchmark_ips.rb +0 -161
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: benchmark-ips
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.10.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Evan Phoenix
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-
|
|
11
|
+
date: 2015-01-12 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: minitest
|
|
@@ -16,14 +16,14 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '5.
|
|
19
|
+
version: '5.4'
|
|
20
20
|
type: :development
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '5.
|
|
26
|
+
version: '5.4'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: rdoc
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -38,47 +38,41 @@ dependencies:
|
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
40
|
version: '4.0'
|
|
41
|
-
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: hoe
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
44
|
-
requirements:
|
|
45
|
-
- - "~>"
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
version: '3.13'
|
|
48
|
-
type: :development
|
|
49
|
-
prerelease: false
|
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
-
requirements:
|
|
52
|
-
- - "~>"
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
54
|
-
version: '3.13'
|
|
55
41
|
description: A iterations per second enhancement to Benchmark.
|
|
56
42
|
email:
|
|
57
43
|
- evan@phx.io
|
|
58
44
|
executables: []
|
|
59
45
|
extensions: []
|
|
60
46
|
extra_rdoc_files:
|
|
61
|
-
- History.
|
|
62
|
-
-
|
|
47
|
+
- History.md
|
|
48
|
+
- LICENSE
|
|
63
49
|
- README.md
|
|
64
50
|
files:
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
- History.txt
|
|
68
|
-
- Manifest.txt
|
|
51
|
+
- History.md
|
|
52
|
+
- LICENSE
|
|
69
53
|
- README.md
|
|
70
|
-
-
|
|
54
|
+
- examples/advanced.rb
|
|
55
|
+
- examples/hold.rb
|
|
56
|
+
- examples/save.rb
|
|
57
|
+
- examples/simple.rb
|
|
71
58
|
- lib/benchmark/compare.rb
|
|
72
59
|
- lib/benchmark/ips.rb
|
|
73
60
|
- lib/benchmark/ips/job.rb
|
|
61
|
+
- lib/benchmark/ips/job/entry.rb
|
|
62
|
+
- lib/benchmark/ips/job/noop_report.rb
|
|
63
|
+
- lib/benchmark/ips/job/stdout_report.rb
|
|
64
|
+
- lib/benchmark/ips/noop_suite.rb
|
|
74
65
|
- lib/benchmark/ips/report.rb
|
|
66
|
+
- lib/benchmark/ips/share.rb
|
|
67
|
+
- lib/benchmark/ips/stats/bootstrap.rb
|
|
68
|
+
- lib/benchmark/ips/stats/sd.rb
|
|
69
|
+
- lib/benchmark/ips/stats/stats_metric.rb
|
|
75
70
|
- lib/benchmark/timing.rb
|
|
76
|
-
- test/test_benchmark_ips.rb
|
|
77
71
|
homepage: https://github.com/evanphx/benchmark-ips
|
|
78
72
|
licenses:
|
|
79
73
|
- MIT
|
|
80
74
|
metadata: {}
|
|
81
|
-
post_install_message:
|
|
75
|
+
post_install_message:
|
|
82
76
|
rdoc_options:
|
|
83
77
|
- "--main"
|
|
84
78
|
- README.md
|
|
@@ -95,9 +89,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
95
89
|
- !ruby/object:Gem::Version
|
|
96
90
|
version: '0'
|
|
97
91
|
requirements: []
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
signing_key:
|
|
92
|
+
rubygems_version: 3.2.26
|
|
93
|
+
signing_key:
|
|
101
94
|
specification_version: 4
|
|
102
95
|
summary: A iterations per second enhancement to Benchmark.
|
|
103
96
|
test_files: []
|
data/.autotest
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# -*- ruby -*-
|
|
2
|
-
|
|
3
|
-
require 'autotest/restart'
|
|
4
|
-
|
|
5
|
-
# Autotest.add_hook :initialize do |at|
|
|
6
|
-
# at.extra_files << "../some/external/dependency.rb"
|
|
7
|
-
#
|
|
8
|
-
# at.libs << ":../some/external"
|
|
9
|
-
#
|
|
10
|
-
# at.add_exception 'vendor'
|
|
11
|
-
#
|
|
12
|
-
# at.add_mapping(/dependency.rb/) do |f, _|
|
|
13
|
-
# at.files_matching(/test_.*rb$/)
|
|
14
|
-
# end
|
|
15
|
-
#
|
|
16
|
-
# %w(TestA TestB).each do |klass|
|
|
17
|
-
# at.extra_class_map[klass] = "test/test_misc.rb"
|
|
18
|
-
# end
|
|
19
|
-
# end
|
|
20
|
-
|
|
21
|
-
# Autotest.add_hook :run_command do |at|
|
|
22
|
-
# system "rake build"
|
|
23
|
-
# end
|
data/.gemtest
DELETED
|
File without changes
|
data/History.txt
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
=== 2.3.0 / 2015-07-20
|
|
2
|
-
|
|
3
|
-
* 2 minor features:
|
|
4
|
-
* Support keyword arguments
|
|
5
|
-
* Allow any datatype for labels (use #to_s conversion)
|
|
6
|
-
|
|
7
|
-
* 1 doc/test changes:
|
|
8
|
-
* Newer Travis for 1.8.7, ree, and 2.2.2
|
|
9
|
-
|
|
10
|
-
* 3 PRs merged:
|
|
11
|
-
* Merge pull request #41 from kbrock/kwargs-support
|
|
12
|
-
* Merge pull request #42 from kbrock/newer_travis
|
|
13
|
-
* Merge pull request #43 from kbrock/non_to_s_labels
|
|
14
|
-
|
|
15
|
-
=== 2.2.0 / 2015-05-09
|
|
16
|
-
|
|
17
|
-
* 1 minor features:
|
|
18
|
-
* Fix quiet mode
|
|
19
|
-
* Allow passing a custom suite via config
|
|
20
|
-
* Silent a job if a suite was passed and is quiet
|
|
21
|
-
* Export report to json file.
|
|
22
|
-
* Accept symbol as report's argument.
|
|
23
|
-
|
|
24
|
-
* 2 doc fixes:
|
|
25
|
-
* Squish duplicate `to` in README
|
|
26
|
-
* Update copyright to 2015. [ci skip]
|
|
27
|
-
|
|
28
|
-
* 9 PRs merged:
|
|
29
|
-
* Merge pull request #37 from splattael/patch-1
|
|
30
|
-
* Merge pull request #36 from kirs/quiet-mode
|
|
31
|
-
* Merge pull request #35 from JuanitoFatas/doc/suite
|
|
32
|
-
* Merge pull request #34 from splattael/config-suite
|
|
33
|
-
* Merge pull request #33 from splattael/suite-quiet
|
|
34
|
-
* Merge pull request #32 from O-I/remove-gemfile-lock
|
|
35
|
-
* Merge pull request #31 from JuanitoFatas/doc/bump-copyright-year
|
|
36
|
-
* Merge pull request #29 from JuanitoFatas/feature/json-export
|
|
37
|
-
* Merge pull request #26 from JuanitoFatas/feature/takes-symbol-as-report-parameter
|
|
38
|
-
|
|
39
|
-
=== 2.1.1 / 2015-01-12
|
|
40
|
-
|
|
41
|
-
* 1 minor fix:
|
|
42
|
-
* Don't send label through printf so that % work directly
|
|
43
|
-
|
|
44
|
-
* 1 documenation changes:
|
|
45
|
-
* Use HEREDOC and wrap at 80 chars for example result description
|
|
46
|
-
|
|
47
|
-
* 1 usage fix:
|
|
48
|
-
* Add gemspec for use via bundler git
|
|
49
|
-
|
|
50
|
-
* 1 PR merged:
|
|
51
|
-
* Merge pull request #24 from zzak/simple-format-result-description
|
|
52
|
-
|
|
53
|
-
=== 2.1.0 / 2014-11-10
|
|
54
|
-
|
|
55
|
-
* Documentation changes:
|
|
56
|
-
* Many documentation fixes by Juanito Fatas!
|
|
57
|
-
* Minor readme fix by Will Leinweber
|
|
58
|
-
|
|
59
|
-
* 2 minor features:
|
|
60
|
-
* Displaying the total runtime for a job is suppressed unless interesting
|
|
61
|
-
* Formatting of large values improved (human vs raw mode)
|
|
62
|
-
* Contributed by Charles Oliver Nutter
|
|
63
|
-
|
|
64
|
-
=== 2.0.0 / 2014-06-18
|
|
65
|
-
|
|
66
|
-
* The 'Davy Stevenson' release!
|
|
67
|
-
* Codename: Springtime Hummingbird Dance
|
|
68
|
-
|
|
69
|
-
* Big API refactoring so the internal bits are easier to use
|
|
70
|
-
* Bump to 2.0 because return types changed to make the API better
|
|
71
|
-
|
|
72
|
-
* Contributors added:
|
|
73
|
-
* Davy Stevenson
|
|
74
|
-
* Juanito Fatas
|
|
75
|
-
* Benoit Daloze
|
|
76
|
-
* Matias
|
|
77
|
-
* Tony Arcieri
|
|
78
|
-
* Vipul A M
|
|
79
|
-
* Zachary Scott
|
|
80
|
-
* schneems (Richard Schneeman)
|
|
81
|
-
|
|
82
|
-
=== 1.0.0 / 2012-03-23
|
|
83
|
-
|
|
84
|
-
* 1 major enhancement
|
|
85
|
-
|
|
86
|
-
* Birthday!
|
|
87
|
-
|
data/Manifest.txt
DELETED
data/Rakefile
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
# -*- ruby -*-
|
|
2
|
-
|
|
3
|
-
require 'rubygems'
|
|
4
|
-
require 'hoe'
|
|
5
|
-
|
|
6
|
-
Hoe.plugin :minitest
|
|
7
|
-
Hoe.plugin :git
|
|
8
|
-
|
|
9
|
-
hoe = Hoe.spec 'benchmark-ips' do
|
|
10
|
-
developer('Evan Phoenix', 'evan@phx.io')
|
|
11
|
-
|
|
12
|
-
self.readme_file = 'README.md'
|
|
13
|
-
|
|
14
|
-
license "MIT"
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
file "#{hoe.spec.name}.gemspec" => ['Rakefile', "lib/benchmark/ips.rb"] do |t|
|
|
18
|
-
puts "Generating #{t.name}"
|
|
19
|
-
File.open(t.name, 'wb') { |f| f.write hoe.spec.to_ruby }
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
desc "Generate or update the standalone gemspec file for the project"
|
|
23
|
-
task :gemspec => ["#{hoe.spec.name}.gemspec"]
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
# vim: syntax=ruby
|
data/test/test_benchmark_ips.rb
DELETED
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
require "minitest/autorun"
|
|
2
|
-
require "benchmark/ips"
|
|
3
|
-
require "stringio"
|
|
4
|
-
|
|
5
|
-
class TestBenchmarkIPS < Minitest::Test
|
|
6
|
-
def setup
|
|
7
|
-
@old_stdout = $stdout
|
|
8
|
-
$stdout = StringIO.new
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def teardown
|
|
12
|
-
$stdout = @old_stdout
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def test_kwargs
|
|
16
|
-
Benchmark.ips(:time => 1, :warmup => 1, :quiet => false) do |x|
|
|
17
|
-
x.report("sleep 0.25") { sleep(0.25) }
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
assert $stdout.string.size > 0
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def test_output
|
|
24
|
-
Benchmark.ips(1) do |x|
|
|
25
|
-
x.report("operation") { 100 * 100 }
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
assert $stdout.string.size > 0
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def test_quiet
|
|
32
|
-
Benchmark.ips(1, nil, true) do |x|
|
|
33
|
-
x.report("operation") { 100 * 100 }
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
assert $stdout.string.size.zero?
|
|
37
|
-
|
|
38
|
-
Benchmark.ips(:quiet => true) do |x|
|
|
39
|
-
x.report("operation") { 100 * 100 }
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
assert $stdout.string.size.zero?
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def test_ips
|
|
46
|
-
report = Benchmark.ips do |x|
|
|
47
|
-
x.config(:time => 1, :warmup => 1)
|
|
48
|
-
x.report("sleep 0.25") { sleep(0.25) }
|
|
49
|
-
x.report("sleep 0.05") { sleep(0.05) }
|
|
50
|
-
x.compare!
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
rep1 = report.entries[0]
|
|
54
|
-
rep2 = report.entries[1]
|
|
55
|
-
|
|
56
|
-
assert_equal "sleep 0.25", rep1.label
|
|
57
|
-
assert_equal 4, rep1.iterations
|
|
58
|
-
assert_in_delta 4.0, rep1.ips, 0.2
|
|
59
|
-
|
|
60
|
-
assert_equal "sleep 0.05", rep2.label
|
|
61
|
-
assert_in_delta 20.0, rep2.iterations.to_f, 1.0
|
|
62
|
-
assert_in_delta 20.0, rep2.ips, 1.0
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
def test_ips_alternate_config
|
|
66
|
-
report = Benchmark.ips do |x|
|
|
67
|
-
x.time = 1
|
|
68
|
-
x.warmup = 1
|
|
69
|
-
x.report("sleep 0.25") { sleep(0.25) }
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
rep = report.entries.first
|
|
73
|
-
|
|
74
|
-
assert_equal "sleep 0.25", rep.label
|
|
75
|
-
assert_equal 4, rep.iterations
|
|
76
|
-
assert_in_delta 4.0, rep.ips, 0.2
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
def test_ips_old_config
|
|
80
|
-
report = Benchmark.ips(1,1) do |x|
|
|
81
|
-
x.report("sleep 0.25") { sleep(0.25) }
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
rep = report.entries.first
|
|
85
|
-
|
|
86
|
-
assert_equal "sleep 0.25", rep.label
|
|
87
|
-
assert_equal 4, rep.iterations
|
|
88
|
-
assert_in_delta 4.0, rep.ips, 0.2
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
def test_ips_config_suite
|
|
92
|
-
suite = Struct.new(:calls) do
|
|
93
|
-
def method_missing(method, *args)
|
|
94
|
-
calls << method
|
|
95
|
-
end
|
|
96
|
-
end.new([])
|
|
97
|
-
|
|
98
|
-
Benchmark.ips(0.1, 0.1) do |x|
|
|
99
|
-
x.config(:suite => suite)
|
|
100
|
-
x.report("job") {}
|
|
101
|
-
end
|
|
102
|
-
|
|
103
|
-
assert_equal [:warming, :warmup_stats, :running, :add_report], suite.calls
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
def test_ips_defaults
|
|
107
|
-
report = Benchmark.ips do |x|
|
|
108
|
-
x.report("sleep 0.25") { sleep(0.25) }
|
|
109
|
-
end
|
|
110
|
-
|
|
111
|
-
rep = report.entries.first
|
|
112
|
-
|
|
113
|
-
assert_equal "sleep 0.25", rep.label
|
|
114
|
-
assert_equal 4*5, rep.iterations
|
|
115
|
-
assert_in_delta 4.0, rep.ips, 0.2
|
|
116
|
-
end
|
|
117
|
-
|
|
118
|
-
def test_ips_report_using_symbol
|
|
119
|
-
report = Benchmark.ips do |x|
|
|
120
|
-
x.report(:sleep_a_quarter_second) { sleep(0.25) }
|
|
121
|
-
end
|
|
122
|
-
|
|
123
|
-
rep = report.entries.first
|
|
124
|
-
|
|
125
|
-
assert_equal :sleep_a_quarter_second, rep.label
|
|
126
|
-
assert_equal 4*5, rep.iterations
|
|
127
|
-
assert_in_delta 4.0, rep.ips, 0.2
|
|
128
|
-
end
|
|
129
|
-
|
|
130
|
-
def test_ips_default_data
|
|
131
|
-
report = Benchmark.ips do |x|
|
|
132
|
-
x.report("sleep 0.25") { sleep(0.25) }
|
|
133
|
-
end
|
|
134
|
-
|
|
135
|
-
all_data = report.data
|
|
136
|
-
|
|
137
|
-
assert all_data
|
|
138
|
-
assert_equal "sleep 0.25", all_data[0][:name]
|
|
139
|
-
assert all_data[0][:ips]
|
|
140
|
-
assert all_data[0][:stddev]
|
|
141
|
-
end
|
|
142
|
-
|
|
143
|
-
def test_json_output
|
|
144
|
-
json_file = Tempfile.new("data.json")
|
|
145
|
-
|
|
146
|
-
Benchmark.ips do |x|
|
|
147
|
-
x.report("sleep 0.25") { sleep(0.25) }
|
|
148
|
-
x.json! json_file.path
|
|
149
|
-
end
|
|
150
|
-
|
|
151
|
-
json_data = json_file.read
|
|
152
|
-
assert json_data
|
|
153
|
-
|
|
154
|
-
data = JSON.parse json_data
|
|
155
|
-
assert data
|
|
156
|
-
assert_equal 1, data.size
|
|
157
|
-
assert_equal "sleep 0.25", data[0]["name"]
|
|
158
|
-
assert data[0]["ips"]
|
|
159
|
-
assert data[0]["stddev"]
|
|
160
|
-
end
|
|
161
|
-
end
|