benchmark_driver 0.14.19 → 0.14.20

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 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