benchmark_driver 0.10.10 → 0.10.11
Sign up to get free protection for your applications and to get access to all the features.
- 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
|