benchmark-ips 2.7.0 → 2.7.1

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
  SHA1:
3
- metadata.gz: 122a521904ed1263289b5f68e76c72515830447e
4
- data.tar.gz: 6b60d87ce82746370a1d0bff1f49be8175b2a5be
3
+ metadata.gz: dbf6e5f13ed635a69ab099631340497b0305df4e
4
+ data.tar.gz: 010de92f654e0dc25d1770b9ce83944540d71920
5
5
  SHA512:
6
- metadata.gz: 3e3588122227405ccb4ce7376e431ee630ca87779633cecdf24b82ba672610cbafc92ff82685b05accda763a54a0c54b50fe2a42763c5f45a9a2171984aaec69
7
- data.tar.gz: cf47674032d38ac758b371edae0b1ffeceaac07ad9f7fc10d8413ffeb2db173395cf90d187b41293d122c50f6c2a9c68776b1e15c6c0c425549928d697d11485
6
+ metadata.gz: 97c18c2d2bf77dd41320fdd5336b2aa562fc0db2b46f8a38866d087491c3d3a52b0e732b2169eaf330bb30e14822f01ff5d4f2f670d99a05624e30721c32bf53
7
+ data.tar.gz: 3cc170d620547e78039a1e007a2fe17aaa6dd0ac6c06d571b0e26aaab0933db69cde62cc63042d3fb6e2c0d2fb54135ea5f5b6c519923a0787284583f7564b4f
@@ -11,5 +11,7 @@ lib/benchmark/ips/job/entry.rb
11
11
  lib/benchmark/ips/job/stdout_report.rb
12
12
  lib/benchmark/ips/report.rb
13
13
  lib/benchmark/ips/share.rb
14
+ lib/benchmark/ips/stats/bootstrap.rb
15
+ lib/benchmark/ips/stats/sd.rb
14
16
  lib/benchmark/timing.rb
15
17
  test/test_benchmark_ips.rb
@@ -15,7 +15,7 @@ module Benchmark
15
15
  module IPS
16
16
 
17
17
  # Benchmark-ips Gem version.
18
- VERSION = "2.7.0"
18
+ VERSION = "2.7.1"
19
19
 
20
20
  # CODENAME of current version.
21
21
  CODENAME = "Cultivating Confidence"
@@ -0,0 +1,51 @@
1
+ module Benchmark
2
+ module IPS
3
+ module Stats
4
+
5
+ class Bootstrap
6
+
7
+ attr_reader :data
8
+
9
+ def initialize(samples, confidence)
10
+ dependencies
11
+ @iterations = 10_000
12
+ @confidence = (confidence / 100.0).to_s
13
+ @data = Kalibera::Data.new({[0] => samples}, [1, samples.size])
14
+ interval = @data.bootstrap_confidence_interval(@iterations, @confidence)
15
+ @median = interval.median
16
+ @error = interval.error
17
+ end
18
+
19
+ def central_tendency
20
+ @median
21
+ end
22
+
23
+ def error
24
+ @error
25
+ end
26
+
27
+ def slowdown(baseline)
28
+ low, slowdown, high = baseline.data.bootstrap_quotient(@data, @iterations, @confidence)
29
+ error = Timing.mean([slowdown - low, high - slowdown])
30
+ [slowdown, error]
31
+ end
32
+
33
+ def footer
34
+ "with #{(@confidence.to_f * 100).round(1)}% confidence"
35
+ end
36
+
37
+ def dependencies
38
+ require 'kalibera'
39
+ rescue LoadError
40
+ puts
41
+ puts "Can't load the kalibera gem - this is required to use the :bootstrap stats options."
42
+ puts "It's optional, so we don't formally depend on it and it isn't installed along with benchmark-ips."
43
+ puts "You probably want to do something like 'gem install kalibera' to fix this."
44
+ abort
45
+ end
46
+
47
+ end
48
+
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,33 @@
1
+ module Benchmark
2
+ module IPS
3
+ module Stats
4
+
5
+ class SD
6
+
7
+ def initialize(samples)
8
+ @mean = Timing.mean(samples)
9
+ @error = Timing.stddev(samples, @mean).round
10
+ end
11
+
12
+ def central_tendency
13
+ @mean
14
+ end
15
+
16
+ def error
17
+ @error
18
+ end
19
+
20
+ def slowdown(baseline)
21
+ slowdown = baseline.central_tendency.to_f / central_tendency
22
+ [slowdown, nil]
23
+ end
24
+
25
+ def footer
26
+ nil
27
+ end
28
+
29
+ end
30
+
31
+ end
32
+ end
33
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: benchmark-ips
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.0
4
+ version: 2.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Evan Phoenix
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-05 00:00:00.000000000 Z
11
+ date: 2016-08-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -75,6 +75,8 @@ files:
75
75
  - lib/benchmark/ips/job/stdout_report.rb
76
76
  - lib/benchmark/ips/report.rb
77
77
  - lib/benchmark/ips/share.rb
78
+ - lib/benchmark/ips/stats/bootstrap.rb
79
+ - lib/benchmark/ips/stats/sd.rb
78
80
  - lib/benchmark/timing.rb
79
81
  - test/test_benchmark_ips.rb
80
82
  homepage: https://github.com/evanphx/benchmark-ips