benchmark_driver 0.14.19 → 0.14.20

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5fc6eb375e57d38fec1e2f7a09cd0681a18d459e8c74781582a4e94443d6f854
4
- data.tar.gz: b61deb730fd4b95eb02a3fc8b17971e889ec9abc9bfc944cdcfcedaa0c4fbbf5
3
+ metadata.gz: 8da8cf07f970515a45b029602f411db25b32350e455c83080b71cb4a6a07cbed
4
+ data.tar.gz: ced745db54c4ee5a8dccb57d911bf92f3e9714bcede2cb990a6f3742d5796437
5
5
  SHA512:
6
- metadata.gz: 2bf212879e75d06d27809cc3f0da5afcb3d4f9d0f42d6f69d41b65c90460da7bd51e4a8b6358c20ee6c74e8d573943c8e651708c3a7c9bdc9d06ec1436ab1c45
7
- data.tar.gz: 3980ae96b3155bff4e76f4133af8b0dd2f6b9393c22db04770be071f19d1ef737e499567ef9ff12176df3b72f39cceb0be7699a7fb4c61809c6347cf6b5b9d19
6
+ metadata.gz: 6542433b89468cc83e65ba31b17e4f339d2c0cdd52022340f5cb2060c3ffcde154e9bedf48d99dfd965b53602478fdf3f91ff7c17b94b1042f0f33f399a9ba2c
7
+ data.tar.gz: 948feb67c5e19ecea0b0f364049f27435e3610e729d39dd4adba9c89397f9911043a8bb036d7803c81f19bdb78bfe5c66d8e690692ca24bd297f3b6aa963a8b3
@@ -1,3 +1,7 @@
1
+ # v0.14.20
2
+
3
+ - Add `block` runner to automatically wrap a Ruby block in script for benchmarking MJIT
4
+
1
5
  # v0.14.19
2
6
 
3
7
  - Improve v0.14.18's Bundler integration for ruby/ruby's `make run`
@@ -15,7 +15,7 @@ config = BenchmarkDriver::Config.new.tap do |c|
15
15
  parser = OptionParser.new do |o|
16
16
  o.version = BenchmarkDriver::VERSION
17
17
  o.banner = "Usage: #{File.basename($0, '.*')} [options] RUBY|YAML..."
18
- o.on('-r', '--runner TYPE', String, 'Specify runner type: ips, time, memory, once (default: ips)') do |d|
18
+ o.on('-r', '--runner TYPE', String, 'Specify runner type: ips, time, memory, once, block (default: ips)') do |d|
19
19
  c.runner_type = d
20
20
  end
21
21
  o.on('-o', '--output TYPE', String, 'Specify output type: compare, simple, markdown, record (default: compare)') do |out|
@@ -2,6 +2,7 @@ module BenchmarkDriver
2
2
  module Runner
3
3
  require 'benchmark_driver/runner/command_stdout'
4
4
  require 'benchmark_driver/runner/ips'
5
+ require 'benchmark_driver/runner/block'
5
6
  require 'benchmark_driver/runner/memory'
6
7
  require 'benchmark_driver/runner/once'
7
8
  require 'benchmark_driver/runner/recorded'
@@ -0,0 +1,22 @@
1
+ require 'benchmark_driver/default_job'
2
+ require 'benchmark_driver/default_job_parser'
3
+
4
+ class BenchmarkDriver::Runner::Block < BenchmarkDriver::Runner::Ips
5
+ METRIC = BenchmarkDriver::Metric.new(name: 'Iteration per second', unit: 'i/s')
6
+
7
+ # JobParser returns this, `BenchmarkDriver::Runner.runner_for` searches "*::Job"
8
+ Job = Class.new(BenchmarkDriver::DefaultJob)
9
+
10
+ # Dynamically fetched and used by `BenchmarkDriver::JobParser.parse`
11
+ JobParser = BenchmarkDriver::DefaultJobParser.for(klass: Job, metrics: [METRIC]).extend(Module.new{
12
+ def parse(*)
13
+ jobs = super
14
+ jobs.map do |job|
15
+ job = job.dup
16
+ job.prelude = "#{job.prelude}\n__bmdv_script_block = proc { #{job.script} }"
17
+ job.script = '__bmdv_script_block.call'
18
+ job
19
+ end
20
+ end
21
+ })
22
+ end
@@ -1,3 +1,3 @@
1
1
  module BenchmarkDriver
2
- VERSION = '0.14.19'
2
+ VERSION = '0.14.20'
3
3
  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.14.19
4
+ version: 0.14.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takashi Kokubun
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-07-20 00:00:00.000000000 Z
11
+ date: 2019-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -115,6 +115,7 @@ files:
115
115
  - lib/benchmark_driver/repeater.rb
116
116
  - lib/benchmark_driver/ruby_interface.rb
117
117
  - lib/benchmark_driver/runner.rb
118
+ - lib/benchmark_driver/runner/block.rb
118
119
  - lib/benchmark_driver/runner/command_stdout.rb
119
120
  - lib/benchmark_driver/runner/ips.rb
120
121
  - lib/benchmark_driver/runner/memory.rb
@@ -143,7 +144,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
143
144
  - !ruby/object:Gem::Version
144
145
  version: '0'
145
146
  requirements: []
146
- rubygems_version: 3.0.4
147
+ rubygems_version: 3.0.3
147
148
  signing_key:
148
149
  specification_version: 4
149
150
  summary: Fully-featured accurate benchmark driver for Ruby