benchmark-ips 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/benchmark/ips.rb +30 -7
- metadata +3 -3
data/lib/benchmark/ips.rb
CHANGED
@@ -5,7 +5,7 @@ require 'benchmark/compare'
|
|
5
5
|
module Benchmark
|
6
6
|
|
7
7
|
class IPSReport
|
8
|
-
VERSION = "1.
|
8
|
+
VERSION = "1.1.0"
|
9
9
|
|
10
10
|
def initialize(label, us, iters, ips, ips_sd, cycles)
|
11
11
|
@label = label
|
@@ -30,8 +30,7 @@ module Benchmark
|
|
30
30
|
|
31
31
|
def body
|
32
32
|
left = "%10.1f (±%.1f%%) i/s" % [ips, stddev_percentage]
|
33
|
-
left.ljust(20) + (" - %10d in %10.6fs
|
34
|
-
[@iterations, runtime, @measurement_cycle])
|
33
|
+
left.ljust(20) + (" - %10d in %10.6fs" % [@iterations, runtime])
|
35
34
|
end
|
36
35
|
|
37
36
|
def header
|
@@ -147,17 +146,23 @@ module Benchmark
|
|
147
146
|
suite = Benchmark::Suite.current
|
148
147
|
end
|
149
148
|
|
149
|
+
quiet = suite && !suite.quiet?
|
150
|
+
|
150
151
|
job = IPSJob.new
|
151
152
|
yield job
|
152
153
|
|
153
154
|
reports = []
|
154
155
|
|
156
|
+
timing = {}
|
157
|
+
|
158
|
+
$stdout.puts "Calculating -------------------------------------" unless quiet
|
159
|
+
|
155
160
|
job.list.each do |item|
|
156
161
|
suite.warming item.label, warmup if suite
|
157
162
|
|
158
163
|
Timing.clean_env
|
159
164
|
|
160
|
-
|
165
|
+
unless quiet
|
161
166
|
if item.label.size > 20
|
162
167
|
$stdout.print "#{item.label}\n#{' ' * 20}"
|
163
168
|
else
|
@@ -184,7 +189,23 @@ module Benchmark
|
|
184
189
|
cycles_per_100ms = ((100_000 / warmup_time) * warmup_iter).to_i
|
185
190
|
cycles_per_100ms = 1 if cycles_per_100ms <= 0
|
186
191
|
|
192
|
+
timing[item] = cycles_per_100ms
|
193
|
+
|
194
|
+
$stdout.printf "%10d i/100ms\n", cycles_per_100ms unless quiet
|
195
|
+
|
187
196
|
suite.warmup_stats warmup_time, cycles_per_100ms if suite
|
197
|
+
end
|
198
|
+
|
199
|
+
$stdout.puts "-------------------------------------------------" unless quiet
|
200
|
+
|
201
|
+
job.list.each do |item|
|
202
|
+
unless quiet
|
203
|
+
if item.label.size > 20
|
204
|
+
$stdout.print "#{item.label}\n#{' ' * 20}"
|
205
|
+
else
|
206
|
+
$stdout.print item.label.rjust(20)
|
207
|
+
end
|
208
|
+
end
|
188
209
|
|
189
210
|
Timing.clean_env
|
190
211
|
|
@@ -196,6 +217,8 @@ module Benchmark
|
|
196
217
|
|
197
218
|
measurements = []
|
198
219
|
|
220
|
+
cycles_per_100ms = timing[item]
|
221
|
+
|
199
222
|
while Time.now < target
|
200
223
|
before = Time.now
|
201
224
|
item.call_times cycles_per_100ms
|
@@ -217,15 +240,15 @@ module Benchmark
|
|
217
240
|
|
218
241
|
rep = IPSReport.new(item.label, measured_us, iter, avg_ips, sd_ips, cycles_per_100ms)
|
219
242
|
|
220
|
-
$stdout.puts " #{rep.body}"
|
243
|
+
$stdout.puts " #{rep.body}" unless quiet
|
221
244
|
|
222
245
|
suite.add_report rep, caller(1).first if suite
|
223
246
|
|
224
|
-
$stdout.sync = sync
|
225
|
-
|
226
247
|
reports << rep
|
227
248
|
end
|
228
249
|
|
250
|
+
$stdout.sync = sync
|
251
|
+
|
229
252
|
if job.compare
|
230
253
|
Benchmark.compare(*reports)
|
231
254
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: benchmark-ips
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
+
- 1
|
8
9
|
- 0
|
9
|
-
|
10
|
-
version: 1.0.0
|
10
|
+
version: 1.1.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Evan Phoenix
|