benchmark-perf 0.1.0 → 0.1.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 +4 -4
- data/.travis.yml +7 -8
- data/CHANGELOG.md +6 -0
- data/Gemfile +1 -1
- data/README.md +10 -10
- data/lib/benchmark/perf/execution_time.rb +11 -4
- data/lib/benchmark/perf/version.rb +1 -1
- data/spec/unit/execution_time_spec.rb +6 -0
- metadata +14 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 701d132071e0459dc7526e5bcb7f0fce1c505b70
|
4
|
+
data.tar.gz: f765203b7e2b4f132782c44c027a2853aa7c3162
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 37a9d93cfad38d010814a44c77483bce25c7237c4dee9547d980dec8be0ded2ba5c180ddc22457edd9944e1d99e7472d3b669d217bd42c93efaf6c51f465d11e
|
7
|
+
data.tar.gz: b9554efaa85360ae97e4d9ab7f74bbb1950c869e712cfc5cfda3562f753e4c18a34d715a4aa9efb0a4a07efa9852b7e811d39c1ccf37930500c89271aec19a91
|
data/.travis.yml
CHANGED
@@ -2,23 +2,22 @@
|
|
2
2
|
language: ruby
|
3
3
|
sudo: false
|
4
4
|
cache: bundler
|
5
|
-
bundler_args: --without yard benchmarks
|
6
5
|
script: "bundle exec rake ci"
|
7
6
|
rvm:
|
8
|
-
-
|
9
|
-
- 2.
|
10
|
-
- 2.
|
11
|
-
- 2.
|
7
|
+
- 2.0.0
|
8
|
+
- 2.1.10
|
9
|
+
- 2.2.5
|
10
|
+
- 2.3.1
|
12
11
|
- ruby-head
|
13
|
-
- jruby-
|
14
|
-
- jruby
|
12
|
+
- jruby-9.1.1.0
|
15
13
|
- jruby-head
|
16
|
-
- rbx-
|
14
|
+
- rbx-3.60
|
17
15
|
env:
|
18
16
|
global:
|
19
17
|
- JRUBY_OPTS="-Xcli.debug=true --debug"
|
20
18
|
matrix:
|
21
19
|
allow_failures:
|
20
|
+
- rvm: rbx-3.60
|
22
21
|
- rvm: ruby-head
|
23
22
|
- rvm: jruby-head
|
24
23
|
fast_finish: true
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
# Change log
|
2
2
|
|
3
|
+
## [v0.1.1] - 2016-10-29
|
4
|
+
|
5
|
+
### Fixed
|
6
|
+
* Fix marshalling of time when measuring execution
|
7
|
+
|
3
8
|
## [v0.1.0] - 2016-01-25
|
4
9
|
|
5
10
|
Initial release
|
6
11
|
|
12
|
+
[v0.1.1]: https://github.com/peter-murach/benchmark-perf/compare/v0.1.0...v0.1.1
|
7
13
|
[v0.1.0]: https://github.com/peter-murach/benchmark-perf/compare/v0.1.0
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,20 +1,20 @@
|
|
1
1
|
# Benchmark::Perf
|
2
2
|
|
3
3
|
[][gem]
|
4
|
-
[][travis]
|
5
|
+
[][codeclimate]
|
6
|
+
[][coverage]
|
7
|
+
[][inchpages]
|
8
8
|
|
9
9
|
[gem]: http://badge.fury.io/rb/benchmark-perf
|
10
|
-
[travis]: http://travis-ci.org/
|
11
|
-
[codeclimate]: https://codeclimate.com/github/
|
12
|
-
[coverage]: https://coveralls.io/github/
|
13
|
-
[inchpages]: http://inch-ci.org/github/
|
10
|
+
[travis]: http://travis-ci.org/piotrmurach/benchmark-perf
|
11
|
+
[codeclimate]: https://codeclimate.com/github/piotrmurach/benchmark-perf
|
12
|
+
[coverage]: https://coveralls.io/github/piotrmurach/benchmark-perf?branch=master
|
13
|
+
[inchpages]: http://inch-ci.org/github/piotrmurach/benchmark-perf
|
14
14
|
|
15
15
|
> Measure execution time and iterations per second.
|
16
16
|
|
17
|
-
The **Benchmark::Perf** is used by [rspec-benchmark](https://github.com/
|
17
|
+
The **Benchmark::Perf** is used by [rspec-benchmark](https://github.com/piotrmurach/rspec-benchmark)
|
18
18
|
|
19
19
|
## Installation
|
20
20
|
|
@@ -62,7 +62,7 @@ mean, stddev, iter, elapsed_time = bench.run { ... }
|
|
62
62
|
|
63
63
|
## Contributing
|
64
64
|
|
65
|
-
1. Fork it ( https://github.com/
|
65
|
+
1. Fork it ( https://github.com/piotrmurach/benchmark-perf/fork )
|
66
66
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
67
67
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
68
68
|
4. Push to the branch (`git push origin my-new-feature`)
|
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
module Benchmark
|
4
4
|
module Perf
|
5
|
+
MarshalError = Class.new(StandardError)
|
6
|
+
|
5
7
|
# Measure length of time the work could take on average
|
6
8
|
#
|
7
9
|
# @api public
|
@@ -49,19 +51,24 @@ module Benchmark
|
|
49
51
|
pid = Process.fork do
|
50
52
|
GC.start
|
51
53
|
GC.disable if ENV['BENCH_DISABLE_GC']
|
52
|
-
reader.close
|
53
54
|
|
55
|
+
reader.close
|
54
56
|
time = yield
|
55
57
|
|
56
58
|
io.print "%9.6f" % time if io
|
57
|
-
|
59
|
+
Marshal.dump(time, writer)
|
60
|
+
|
58
61
|
GC.enable if ENV['BENCH_DISABLE_GC']
|
59
62
|
exit!(0) # run without hooks
|
60
63
|
end
|
61
64
|
|
62
|
-
writer.close
|
65
|
+
writer.close unless writer.closed?
|
63
66
|
Process.waitpid(pid)
|
64
|
-
|
67
|
+
begin
|
68
|
+
Marshal.load(reader)
|
69
|
+
rescue => e
|
70
|
+
raise MarshalError, "#{e.class}: #{e.message}"
|
71
|
+
end
|
65
72
|
end
|
66
73
|
|
67
74
|
# Run warmup measurement
|
@@ -17,6 +17,12 @@ RSpec.describe Benchmark::Perf::ExecutionTime do
|
|
17
17
|
expect(sample).to all(be < 0.01)
|
18
18
|
end
|
19
19
|
|
20
|
+
it "measures complex object" do
|
21
|
+
bench = described_class.new
|
22
|
+
sample = bench.run { {foo: Object.new, bar: :piotr} }
|
23
|
+
expect(sample).to all(be < 0.001)
|
24
|
+
end
|
25
|
+
|
20
26
|
it "executes code to warmup ruby vm" do
|
21
27
|
bench = described_class.new
|
22
28
|
sample = bench.run_warmup { 'x' * 1_000_000 }
|
metadata
CHANGED
@@ -1,47 +1,47 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: benchmark-perf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Piotr Murach
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-10-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 1.5.0
|
20
|
-
- - <
|
20
|
+
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: '2.0'
|
23
23
|
type: :development
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- -
|
27
|
+
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: 1.5.0
|
30
|
-
- - <
|
30
|
+
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '2.0'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: rake
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
|
-
- -
|
37
|
+
- - ">="
|
38
38
|
- !ruby/object:Gem::Version
|
39
39
|
version: '0'
|
40
40
|
type: :development
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
|
-
- -
|
44
|
+
- - ">="
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: '0'
|
47
47
|
description: Execution time and iteration performance benchmarking
|
@@ -51,9 +51,9 @@ executables: []
|
|
51
51
|
extensions: []
|
52
52
|
extra_rdoc_files: []
|
53
53
|
files:
|
54
|
-
- .gitignore
|
55
|
-
- .rspec
|
56
|
-
- .travis.yml
|
54
|
+
- ".gitignore"
|
55
|
+
- ".rspec"
|
56
|
+
- ".travis.yml"
|
57
57
|
- CHANGELOG.md
|
58
58
|
- Gemfile
|
59
59
|
- LICENSE.txt
|
@@ -82,17 +82,17 @@ require_paths:
|
|
82
82
|
- lib
|
83
83
|
required_ruby_version: !ruby/object:Gem::Requirement
|
84
84
|
requirements:
|
85
|
-
- -
|
85
|
+
- - ">="
|
86
86
|
- !ruby/object:Gem::Version
|
87
87
|
version: '0'
|
88
88
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
89
89
|
requirements:
|
90
|
-
- -
|
90
|
+
- - ">="
|
91
91
|
- !ruby/object:Gem::Version
|
92
92
|
version: '0'
|
93
93
|
requirements: []
|
94
94
|
rubyforge_project:
|
95
|
-
rubygems_version: 2.
|
95
|
+
rubygems_version: 2.5.1
|
96
96
|
signing_key:
|
97
97
|
specification_version: 4
|
98
98
|
summary: Execution time and iteration performance benchmarking
|