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