benchmark_driver 0.2.0 → 0.2.1
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 +4 -4
- data/.travis.yml +6 -0
- data/README.md +5 -5
- data/Rakefile +4 -4
- data/{ruby_benchmark_set → benchmarks}/core/array.yml +0 -0
- data/{ruby_benchmark_set → benchmarks}/example_multi.yml +0 -0
- data/{ruby_benchmark_set → benchmarks}/example_single.yml +0 -0
- data/{ruby_benchmark_set → benchmarks}/lib/erb.yml +0 -0
- data/exe/benchmark_driver +1 -1
- data/lib/benchmark_driver.rb +8 -8
- data/lib/benchmark_driver/version.rb +1 -1
- metadata +7 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1d790640dbf5f88319e5252499c855d694844e5a
|
|
4
|
+
data.tar.gz: 4d41672bc6d38b0564127ca370a16acfa3e72e83
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: adbfe1cd9df1d9641bce90a41ee93322b1ddcc052943bb895182e89f0a600f13ea1cc5e60186b6cd8e9b5e3e1b8ea611002572af2f8b411c577a8c0e639c858a
|
|
7
|
+
data.tar.gz: f97cfb1b70fbe87c07ba650fb65ec706d35dbb308514f00f794c32357ae5f470f66dfbe0dca7d8361bd38c9cff644b4dc00c7af280b7b88dab4ee45f6978deb2
|
data/.travis.yml
CHANGED
|
@@ -3,3 +3,9 @@ language: ruby
|
|
|
3
3
|
rvm:
|
|
4
4
|
- 2.4.1
|
|
5
5
|
before_install: gem install bundler -v 1.15.4
|
|
6
|
+
script:
|
|
7
|
+
- bundle exec rake
|
|
8
|
+
|
|
9
|
+
# Test some options
|
|
10
|
+
- bundle exec exe/benchmark_driver benchmarks/example_single.yml -e ruby1::ruby -e ruby2::ruby -i
|
|
11
|
+
- bundle exec exe/benchmark_driver benchmarks/example_single.yml -e ruby1::ruby -e ruby2::ruby -i 2
|
data/README.md
CHANGED
|
@@ -31,7 +31,7 @@ benchmark: erb.result
|
|
|
31
31
|
you can benchmark the script with multiple ruby executables.
|
|
32
32
|
|
|
33
33
|
```
|
|
34
|
-
$ exe/benchmark_driver
|
|
34
|
+
$ exe/benchmark_driver benchmarks/example_single.yml -e ruby1::ruby -e ruby2::ruby
|
|
35
35
|
benchmark results:
|
|
36
36
|
Execution time (sec)
|
|
37
37
|
name ruby1 ruby2
|
|
@@ -45,7 +45,7 @@ example_single 0.986
|
|
|
45
45
|
And you can change benchmark output to IPS (iteration per second) by `-i` option.
|
|
46
46
|
|
|
47
47
|
```
|
|
48
|
-
$ exe/benchmark_driver
|
|
48
|
+
$ exe/benchmark_driver benchmarks/example_single.yml -e ruby1::ruby -e ruby2::ruby -i
|
|
49
49
|
Result -------------------------------------------
|
|
50
50
|
ruby1 ruby2
|
|
51
51
|
example_single 99414.1 i/s 99723.3 i/s
|
|
@@ -76,7 +76,7 @@ benchmarks:
|
|
|
76
76
|
you can benchmark the scripts with multiple ruby executables.
|
|
77
77
|
|
|
78
78
|
```
|
|
79
|
-
$ exe/benchmark_driver
|
|
79
|
+
$ exe/benchmark_driver benchmarks/example_multi.yml -e ruby1::ruby -e ruby2::ruby
|
|
80
80
|
benchmark results:
|
|
81
81
|
Execution time (sec)
|
|
82
82
|
name ruby1 ruby2
|
|
@@ -90,7 +90,7 @@ interpolation 1.002
|
|
|
90
90
|
```
|
|
91
91
|
|
|
92
92
|
```
|
|
93
|
-
$ exe/benchmark_driver
|
|
93
|
+
$ exe/benchmark_driver benchmarks/example_multi.yml -e ruby1::ruby -e ruby2::ruby -i
|
|
94
94
|
Result -------------------------------------------
|
|
95
95
|
ruby1 ruby2
|
|
96
96
|
join 4701954.3 i/s 4639520.3 i/s
|
|
@@ -142,7 +142,7 @@ benchmarks:
|
|
|
142
142
|
If you have a trouble like an unexpectedly fast result, you should check benchmark script by `-v`.
|
|
143
143
|
|
|
144
144
|
```
|
|
145
|
-
$ exe/benchmark_driver
|
|
145
|
+
$ exe/benchmark_driver benchmarks/example_multi.yml -v
|
|
146
146
|
--- Running "join" with "ruby" 957780 times ---
|
|
147
147
|
a = 'a' * 100
|
|
148
148
|
b = 'b' * 100
|
data/Rakefile
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
require 'bundler/gem_tasks'
|
|
2
2
|
|
|
3
|
-
desc 'Run benchmarks in
|
|
4
|
-
task :
|
|
3
|
+
desc 'Run benchmarks in benchmarks'
|
|
4
|
+
task :benchmarks do
|
|
5
5
|
require 'bundler'
|
|
6
6
|
require 'shellwords'
|
|
7
7
|
|
|
8
|
-
Dir.glob(File.expand_path('./
|
|
8
|
+
Dir.glob(File.expand_path('./benchmarks/**/*.yml', __dir__)).sort.each do |path|
|
|
9
9
|
Bundler.with_clean_env do
|
|
10
10
|
sh [File.expand_path('./exe/benchmark_driver', __dir__), path].shelljoin
|
|
11
11
|
end
|
|
12
12
|
end
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
task default: :
|
|
15
|
+
task default: :benchmarks
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/exe/benchmark_driver
CHANGED
|
@@ -16,7 +16,7 @@ args = OptionParser.new do |o|
|
|
|
16
16
|
end
|
|
17
17
|
o.on('-i [DURATION]', '--ips [SECONDS]', "Measure IPS in duration seconds (default: #{BenchmarkDriver::DEFAULT_IPS_DURATION})") do |i|
|
|
18
18
|
options[:measure_type] = 'ips'
|
|
19
|
-
options[:measure_num] = i if i
|
|
19
|
+
options[:measure_num] = Integer(i) if i
|
|
20
20
|
end
|
|
21
21
|
o.on('-l [COUNT]', '--loop-count [COUNT]', "Measure execution time with loop count (default: #{BenchmarkDriver::DEFAULT_LOOP_COUNT})") do |l|
|
|
22
22
|
options[:measure_type] = 'loop_count'
|
data/lib/benchmark_driver.rb
CHANGED
|
@@ -8,7 +8,7 @@ class BenchmarkDriver
|
|
|
8
8
|
DEFAULT_IPS_DURATION = 1
|
|
9
9
|
|
|
10
10
|
# @param [String] measure_type - "loop_count"|"ips"
|
|
11
|
-
# @param [Integer] measure_num - Loop count for "loop_type", duration seconds for "ips"
|
|
11
|
+
# @param [Integer,nil] measure_num - Loop count for "loop_type", duration seconds for "ips"
|
|
12
12
|
# @param [Array<String>] execs - ["path1", "path2"] or `["ruby1::path1", "ruby2::path2"]`
|
|
13
13
|
# @param [Boolean] verbose
|
|
14
14
|
def initialize(measure_type: 'loop_count', measure_num: nil, execs: ['ruby'], verbose: false)
|
|
@@ -78,7 +78,7 @@ class BenchmarkDriver
|
|
|
78
78
|
end
|
|
79
79
|
|
|
80
80
|
def measure_script(ruby, script)
|
|
81
|
-
Tempfile.create do |f|
|
|
81
|
+
Tempfile.create(File.basename(__FILE__)) do |f|
|
|
82
82
|
f.write(script)
|
|
83
83
|
f.close
|
|
84
84
|
|
|
@@ -139,9 +139,9 @@ class BenchmarkDriver
|
|
|
139
139
|
def overhead_script(iterations)
|
|
140
140
|
<<-RUBY
|
|
141
141
|
#{@prelude}
|
|
142
|
-
|
|
143
|
-
while
|
|
144
|
-
|
|
142
|
+
__benchmark_driver_i = 0
|
|
143
|
+
while __benchmark_driver_i < #{iterations}
|
|
144
|
+
__benchmark_driver_i += 1
|
|
145
145
|
end
|
|
146
146
|
RUBY
|
|
147
147
|
end
|
|
@@ -149,9 +149,9 @@ end
|
|
|
149
149
|
def benchmark_script(iterations)
|
|
150
150
|
<<-RUBY
|
|
151
151
|
#{@prelude}
|
|
152
|
-
|
|
153
|
-
while
|
|
154
|
-
|
|
152
|
+
__benchmark_driver_i = 0
|
|
153
|
+
while __benchmark_driver_i < #{iterations}
|
|
154
|
+
__benchmark_driver_i += 1
|
|
155
155
|
#{@benchmark}
|
|
156
156
|
end
|
|
157
157
|
RUBY
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: benchmark_driver
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Takashi Kokubun
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2017-
|
|
11
|
+
date: 2017-10-13 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -53,15 +53,15 @@ files:
|
|
|
53
53
|
- README.md
|
|
54
54
|
- Rakefile
|
|
55
55
|
- benchmark_driver.gemspec
|
|
56
|
+
- benchmarks/core/array.yml
|
|
57
|
+
- benchmarks/example_multi.yml
|
|
58
|
+
- benchmarks/example_single.yml
|
|
59
|
+
- benchmarks/lib/erb.yml
|
|
56
60
|
- bin/console
|
|
57
61
|
- bin/setup
|
|
58
62
|
- exe/benchmark_driver
|
|
59
63
|
- lib/benchmark_driver.rb
|
|
60
64
|
- lib/benchmark_driver/version.rb
|
|
61
|
-
- ruby_benchmark_set/core/array.yml
|
|
62
|
-
- ruby_benchmark_set/example_multi.yml
|
|
63
|
-
- ruby_benchmark_set/example_single.yml
|
|
64
|
-
- ruby_benchmark_set/lib/erb.yml
|
|
65
65
|
homepage: https://github.com/k0kubun/benchmark_driver
|
|
66
66
|
licenses:
|
|
67
67
|
- MIT
|
|
@@ -82,7 +82,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
82
82
|
version: '0'
|
|
83
83
|
requirements: []
|
|
84
84
|
rubyforge_project:
|
|
85
|
-
rubygems_version: 2.6.
|
|
85
|
+
rubygems_version: 2.6.13
|
|
86
86
|
signing_key:
|
|
87
87
|
specification_version: 4
|
|
88
88
|
summary: Benchmark driver for different Ruby executables
|