benchmark 0.1.1 → 0.2.0
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/.github/workflows/test.yml +22 -0
- data/benchmark.gemspec +1 -1
- data/lib/benchmark/version.rb +1 -1
- data/lib/benchmark.rb +23 -6
- metadata +4 -4
- data/.travis.yml +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eafbbb0ec7f26fb0f60f21a677e4f749670e912c9ff1948fec84aa0b6f8a08bd
|
4
|
+
data.tar.gz: 32098b08dfca91b193cd47d3a009287afc4dabb36a093e8398998e78dcbcf2b3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2abb831bd071d73f72efe77b45ed4eca4eb861c124bdf976e6fb498e2c44edb7fbed91b4b4063a7a27f1c8652e8c365d45792ffc843d08925f50a564742c6832
|
7
|
+
data.tar.gz: 8b46138b50800e8ef91417763c238e0cb1ab55f863fa491d92c932a8aa13168065cf19f22de3ed79b5c580728647da3904b423c6de463d775d489d6960f032a0
|
@@ -0,0 +1,22 @@
|
|
1
|
+
name: build
|
2
|
+
|
3
|
+
on: [push, pull_request]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
build:
|
7
|
+
name: build (${{ matrix.ruby }} / ${{ matrix.os }})
|
8
|
+
strategy:
|
9
|
+
matrix:
|
10
|
+
ruby: [ '3.0', 2.7, 2.6, 2.5, head ]
|
11
|
+
os: [ ubuntu-latest, macos-latest ]
|
12
|
+
runs-on: ${{ matrix.os }}
|
13
|
+
steps:
|
14
|
+
- uses: actions/checkout@v2
|
15
|
+
- name: Set up Ruby
|
16
|
+
uses: ruby/setup-ruby@v1
|
17
|
+
with:
|
18
|
+
ruby-version: ${{ matrix.ruby }}
|
19
|
+
- name: Install dependencies
|
20
|
+
run: bundle install
|
21
|
+
- name: Run test
|
22
|
+
run: rake test
|
data/benchmark.gemspec
CHANGED
@@ -24,6 +24,6 @@ Gem::Specification.new do |spec|
|
|
24
24
|
`git ls-files -z 2>/dev/null`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
25
25
|
end
|
26
26
|
spec.bindir = "exe"
|
27
|
-
spec.executables =
|
27
|
+
spec.executables = []
|
28
28
|
spec.require_paths = ["lib"]
|
29
29
|
end
|
data/lib/benchmark/version.rb
CHANGED
data/lib/benchmark.rb
CHANGED
@@ -128,6 +128,9 @@ module Benchmark
|
|
128
128
|
# benchmark tests. Reserves +label_width+ leading spaces for
|
129
129
|
# labels on each line. Prints +caption+ at the top of the
|
130
130
|
# report, and uses +format+ to format each line.
|
131
|
+
# (Note: +caption+ must contain a terminating newline character,
|
132
|
+
# see the default Benchmark::Tms::CAPTION for an example.)
|
133
|
+
#
|
131
134
|
# Returns an array of Benchmark::Tms objects.
|
132
135
|
#
|
133
136
|
# If the block returns an array of
|
@@ -163,8 +166,8 @@ module Benchmark
|
|
163
166
|
#
|
164
167
|
|
165
168
|
def benchmark(caption = "", label_width = nil, format = nil, *labels) # :yield: report
|
166
|
-
sync =
|
167
|
-
|
169
|
+
sync = $stdout.sync
|
170
|
+
$stdout.sync = true
|
168
171
|
label_width ||= 0
|
169
172
|
label_width += 1
|
170
173
|
format ||= FORMAT
|
@@ -176,7 +179,7 @@ module Benchmark
|
|
176
179
|
}
|
177
180
|
report.list
|
178
181
|
ensure
|
179
|
-
|
182
|
+
$stdout.sync = sync unless sync.nil?
|
180
183
|
end
|
181
184
|
|
182
185
|
|
@@ -247,8 +250,8 @@ module Benchmark
|
|
247
250
|
job = Job.new(width)
|
248
251
|
yield(job)
|
249
252
|
width = job.width + 1
|
250
|
-
sync =
|
251
|
-
|
253
|
+
sync = $stdout.sync
|
254
|
+
$stdout.sync = true
|
252
255
|
|
253
256
|
# rehearsal
|
254
257
|
puts 'Rehearsal '.ljust(width+CAPTION.length,'-')
|
@@ -268,7 +271,7 @@ module Benchmark
|
|
268
271
|
Benchmark.measure(label, &item).tap { |res| print res }
|
269
272
|
}
|
270
273
|
ensure
|
271
|
-
|
274
|
+
$stdout.sync = sync unless sync.nil?
|
272
275
|
end
|
273
276
|
|
274
277
|
#
|
@@ -527,6 +530,20 @@ module Benchmark
|
|
527
530
|
[@label, @utime, @stime, @cutime, @cstime, @real]
|
528
531
|
end
|
529
532
|
|
533
|
+
#
|
534
|
+
# Returns a hash containing the same data as `to_a`.
|
535
|
+
#
|
536
|
+
def to_h
|
537
|
+
{
|
538
|
+
label: @label,
|
539
|
+
utime: @utime,
|
540
|
+
stime: @stime,
|
541
|
+
cutime: @cutime,
|
542
|
+
cstime: @cstime,
|
543
|
+
real: @real
|
544
|
+
}
|
545
|
+
end
|
546
|
+
|
530
547
|
protected
|
531
548
|
|
532
549
|
#
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: benchmark
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yukihiro Matsumoto
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-10-14 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: a performance benchmarking library
|
14
14
|
email:
|
@@ -17,8 +17,8 @@ executables: []
|
|
17
17
|
extensions: []
|
18
18
|
extra_rdoc_files: []
|
19
19
|
files:
|
20
|
+
- ".github/workflows/test.yml"
|
20
21
|
- ".gitignore"
|
21
|
-
- ".travis.yml"
|
22
22
|
- Gemfile
|
23
23
|
- LICENSE.txt
|
24
24
|
- README.md
|
@@ -50,7 +50,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
50
50
|
- !ruby/object:Gem::Version
|
51
51
|
version: '0'
|
52
52
|
requirements: []
|
53
|
-
rubygems_version: 3.
|
53
|
+
rubygems_version: 3.3.0.dev
|
54
54
|
signing_key:
|
55
55
|
specification_version: 4
|
56
56
|
summary: a performance benchmarking library
|