benchmark_driver 0.10.10 → 0.10.11
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/CHANGELOG.md +4 -0
- data/lib/benchmark_driver/config.rb +5 -0
- data/lib/benchmark_driver/default_job.rb +16 -1
- data/lib/benchmark_driver/default_job_parser.rb +5 -3
- data/lib/benchmark_driver/runner/ips.rb +2 -2
- data/lib/benchmark_driver/runner/memory.rb +1 -1
- data/lib/benchmark_driver/runner/once.rb +1 -1
- data/lib/benchmark_driver/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 24436275666595b27dd25877162c3beec019cdeff0f299b492e3560290ee2bef
|
4
|
+
data.tar.gz: 91de36833aed9e78e16a5d7f345515e1118941397a82491b7de2c37f4e3f332d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4f7f721f8971d4cf605489a0bbc7ceeb50db1932a1f12bd31adc92076eb6134daacbad8e304b5644d8af59ffa8980c965b5c8c148c6e9b15c84c26b81e62341f
|
7
|
+
data.tar.gz: 92d1145452989b637e8042e0e20f3a9771f0ad238fa3226cfaba5b832d4b2c8498598e356b24d085dce07e43bb0d23662a70d311ef38a9df43ba301562acaa92
|
data/CHANGELOG.md
CHANGED
@@ -42,6 +42,11 @@ module BenchmarkDriver
|
|
42
42
|
def description
|
43
43
|
@cache[:description] ||= IO.popen([*command, '-v'], &:read).rstrip
|
44
44
|
end
|
45
|
+
|
46
|
+
# @return [String] - Return RUBY_VERSION
|
47
|
+
def version
|
48
|
+
@cache[:version] ||= IO.popen([*command, '-e', 'print RUBY_VERSION'], &:read)
|
49
|
+
end
|
45
50
|
end
|
46
51
|
Config.defaults[:executables] = [
|
47
52
|
BenchmarkDriver::Config::Executable.new(name: RUBY_VERSION, command: [RbConfig.ruby]),
|
@@ -7,6 +7,21 @@ module BenchmarkDriver
|
|
7
7
|
:prelude, # @param [String,nil] prelude (optional)
|
8
8
|
:teardown, # @param [String,nil] after (optional)
|
9
9
|
:loop_count, # @param [Integer,nil] loop_count (optional)
|
10
|
+
:required_ruby_version, # @param [String,nil] required_ruby_version (optional)
|
10
11
|
defaults: { prelude: '', teardown: '' },
|
11
|
-
)
|
12
|
+
) do
|
13
|
+
def runnable_execs(executables)
|
14
|
+
if required_ruby_version
|
15
|
+
executables.select do |executable|
|
16
|
+
Gem::Version.new(executable.version) >= Gem::Version.new(required_ruby_version)
|
17
|
+
end.tap do |result|
|
18
|
+
if result.empty?
|
19
|
+
raise "No Ruby executables conforming required_ruby_version (#{required_ruby_version}) are specified"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
else
|
23
|
+
executables
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
12
27
|
end
|
@@ -17,12 +17,14 @@ module BenchmarkDriver
|
|
17
17
|
# @param [String,Array<String,Hash{ Symbol => String }>,Hash{ Symbol => String }] benchmark
|
18
18
|
# @param [String] teardown
|
19
19
|
# @param [Integer] loop_count
|
20
|
+
# @param [String] required_ruby_version
|
20
21
|
# @return [Array<BenchmarkDriver::Default::Job>]
|
21
|
-
def parse(prelude: nil, benchmark:, teardown: nil, loop_count: nil)
|
22
|
+
def parse(prelude: nil, benchmark:, teardown: nil, loop_count: nil, required_ruby_version: nil)
|
22
23
|
parse_benchmark(benchmark).each do |job|
|
23
24
|
job.prelude.prepend("#{prelude}\n") if prelude
|
24
25
|
job.teardown.prepend("#{teardown}\n") if teardown
|
25
26
|
job.loop_count ||= loop_count
|
27
|
+
job.required_ruby_version ||= required_ruby_version
|
26
28
|
end.each(&:freeze)
|
27
29
|
end
|
28
30
|
|
@@ -56,9 +58,9 @@ module BenchmarkDriver
|
|
56
58
|
end
|
57
59
|
end
|
58
60
|
|
59
|
-
def parse_job_hash(name: nil, prelude: '', script:, teardown: '', loop_count: nil)
|
61
|
+
def parse_job_hash(name: nil, prelude: '', script:, teardown: '', loop_count: nil, required_ruby_version: nil)
|
60
62
|
name ||= script
|
61
|
-
job_class.new(name: name, prelude: prelude, script: script, teardown: teardown, loop_count: loop_count)
|
63
|
+
job_class.new(name: name, prelude: prelude, script: script, teardown: teardown, loop_count: loop_count, required_ruby_version: required_ruby_version)
|
62
64
|
end
|
63
65
|
|
64
66
|
def job_class
|
@@ -32,7 +32,7 @@ class BenchmarkDriver::Runner::Ips
|
|
32
32
|
next job if job.loop_count # skip warmup if loop_count is set
|
33
33
|
|
34
34
|
@output.with_job(job) do
|
35
|
-
result = run_warmup(job, exec: @config.executables.first)
|
35
|
+
result = run_warmup(job, exec: job.runnable_execs(@config.executables).first)
|
36
36
|
metrics = build_metrics(result)
|
37
37
|
@output.report(metrics)
|
38
38
|
|
@@ -46,7 +46,7 @@ class BenchmarkDriver::Runner::Ips
|
|
46
46
|
@output.with_benchmark do
|
47
47
|
jobs.each do |job|
|
48
48
|
@output.with_job(job) do
|
49
|
-
@config.executables.each do |exec|
|
49
|
+
job.runnable_execs(@config.executables).each do |exec|
|
50
50
|
best_metrics = with_repeat(@config.repeat_count) do
|
51
51
|
run_benchmark(job, exec: exec)
|
52
52
|
end
|
@@ -40,7 +40,7 @@ class BenchmarkDriver::Runner::Memory
|
|
40
40
|
@output.with_benchmark do
|
41
41
|
jobs.each do |job|
|
42
42
|
@output.with_job(job) do
|
43
|
-
@config.executables.each do |exec|
|
43
|
+
job.runnable_execs(@config.executables).each do |exec|
|
44
44
|
best_metrics = with_repeat(@config.repeat_count) do
|
45
45
|
run_benchmark(job, exec: exec)
|
46
46
|
end
|
@@ -33,7 +33,7 @@ class BenchmarkDriver::Runner::Once
|
|
33
33
|
@output.with_benchmark do
|
34
34
|
jobs.each do |job|
|
35
35
|
@output.with_job(job) do
|
36
|
-
@config.executables.each do |exec|
|
36
|
+
job.runnable_execs(@config.executables).each do |exec|
|
37
37
|
metrics = run_benchmark(job, exec: exec) # no repeat support
|
38
38
|
@output.report(metrics)
|
39
39
|
end
|
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.10.
|
4
|
+
version: 0.10.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Takashi Kokubun
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-03-
|
11
|
+
date: 2018-03-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|