coverband_ext 0.0.2 → 1.0.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.
- data/README.md +15 -8
- data/lib/coverband_ext/version.rb +1 -1
- data/{example.rb → scripts/example.rb} +6 -0
- data/{install.rb → scripts/install.rb} +0 -0
- metadata +6 -6
data/README.md
CHANGED
@@ -1,12 +1,15 @@
|
|
1
1
|
# CoverbandExt
|
2
2
|
|
3
|
-
This is a
|
3
|
+
This is a C extension to run coverband on Ruby 1.9.3+ much much faster that with the pure Ruby version. This has been tested with Ruby 1.9.3, 2.0,x, 2.1.x
|
4
|
+
|
5
|
+
This gem does nothing on its own. So make sure you already have setup the [coverband](https://github.com/danmayer/coverband) gem. I recommend using just `coverband` to get run time code coverage working on your project. Then adding this gem once everything is configured and working to reduce the performance overhead of the original gem.
|
4
6
|
|
5
7
|
## Installation
|
6
8
|
|
7
|
-
Add this line to your application's Gemfile:
|
9
|
+
Add this line to your application's Gemfile, after the existing coverband line:
|
8
10
|
|
9
11
|
gem 'coverband_ext'
|
12
|
+
gem 'coverband_ext'
|
10
13
|
|
11
14
|
And then execute:
|
12
15
|
|
@@ -14,15 +17,19 @@ And then execute:
|
|
14
17
|
|
15
18
|
Or install it yourself as:
|
16
19
|
|
17
|
-
$ gem install coverband_ext
|
20
|
+
$ gem install coverband coverband_ext
|
18
21
|
|
19
22
|
## Usage
|
20
23
|
|
21
|
-
Follow the normal Coverband usage... Include this gem below the coverband gem in your `Gemfile`. Make sure you are on Coverband 0.0
|
24
|
+
Follow the normal Coverband usage... Include this gem below the coverband gem in your `Gemfile`. Make sure you are on Coverband 1.0.0 or above to have coverband detect and use this extension. With this gem loaded coverband will go ahead and use the available C extension methods to see a significant performance improvement.
|
25
|
+
|
26
|
+
No other changes should be required to receive the additional perf improvements.
|
22
27
|
|
23
28
|
## Perf Improvements
|
24
29
|
|
25
|
-
|
30
|
+
I have actually slightly improved the perf again since the V2 version in the benchmarks below.
|
31
|
+
|
32
|
+
#### Example perf against smaller app with 100% coverband sampling
|
26
33
|
|
27
34
|
`ab -n 100 -c5 http://small.app.com:80/`
|
28
35
|
|
@@ -32,10 +39,10 @@ Follow the normal Coverband usage... Include this gem below the coverband gem in
|
|
32
39
|
* Time taken for tests: 31.489 seconds / 29.064 seconds
|
33
40
|
* Ruby Coverband C Ext V1
|
34
41
|
* Time taken for tests: 14.679 seconds / 12.033 seconds
|
35
|
-
* Ruby Coverband C Ext V2
|
42
|
+
* Ruby Coverband C Ext V2 (which includes Regex support)
|
36
43
|
* Time taken for tests: 6.131 seconds / 6.321 seconds
|
37
44
|
|
38
|
-
##### Example perf against large rails app with 100% coverband sampling
|
45
|
+
##### Example perf against a VERY large rails app with 100% coverband sampling
|
39
46
|
|
40
47
|
`ab -n 50 -c5 http://pipeline.lsdev.co:80/pipeline/cities`
|
41
48
|
|
@@ -43,7 +50,7 @@ Follow the normal Coverband usage... Include this gem below the coverband gem in
|
|
43
50
|
* Time taken for tests: 31.347 seconds / 31.298 seconds
|
44
51
|
* Ruby Coverband
|
45
52
|
* Time taken for tests: 336.53 seconds / 331.89 seconds
|
46
|
-
* Ruby Coverband C Ext V2
|
53
|
+
* Ruby Coverband C Ext V2 (which includes Regex support)
|
47
54
|
* Time taken for tests: 42.785 seconds / 43.343 seconds
|
48
55
|
|
49
56
|
## Contributing
|
@@ -1,3 +1,9 @@
|
|
1
|
+
###
|
2
|
+
# This file is just for me to quickly test and verify a few things are working as expected.
|
3
|
+
# Beyond testing that functionality works it makes it easy to override parts
|
4
|
+
# of the coverband gem before making changes back in the host gem.
|
5
|
+
###
|
6
|
+
|
1
7
|
# bundle exec rake build
|
2
8
|
# gem uninstall coverband_ext
|
3
9
|
# gem install pkg/coverband_ext-0.0.1.gem
|
File without changes
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: coverband_ext
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-08-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -73,7 +73,6 @@ files:
|
|
73
73
|
- README.md
|
74
74
|
- Rakefile
|
75
75
|
- coverband_ext.gemspec
|
76
|
-
- example.rb
|
77
76
|
- ext/coverband_ext/coverband_ext.c
|
78
77
|
- ext/coverband_ext/extconf.rb
|
79
78
|
- ext/coverband_ext/ruby_headers/192/debug.h
|
@@ -124,9 +123,10 @@ files:
|
|
124
123
|
- ext/coverband_ext/ruby_headers/193/vm_exec.h
|
125
124
|
- ext/coverband_ext/ruby_headers/193/vm_insnhelper.h
|
126
125
|
- ext/coverband_ext/ruby_headers/193/vm_opts.h
|
127
|
-
- install.rb
|
128
126
|
- lib/coverband_ext.rb
|
129
127
|
- lib/coverband_ext/version.rb
|
128
|
+
- scripts/example.rb
|
129
|
+
- scripts/install.rb
|
130
130
|
homepage: ''
|
131
131
|
licenses:
|
132
132
|
- MIT
|
@@ -142,7 +142,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
142
142
|
version: '0'
|
143
143
|
segments:
|
144
144
|
- 0
|
145
|
-
hash:
|
145
|
+
hash: -1916411580250023859
|
146
146
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
147
147
|
none: false
|
148
148
|
requirements:
|
@@ -151,7 +151,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
151
151
|
version: '0'
|
152
152
|
segments:
|
153
153
|
- 0
|
154
|
-
hash:
|
154
|
+
hash: -1916411580250023859
|
155
155
|
requirements: []
|
156
156
|
rubyforge_project:
|
157
157
|
rubygems_version: 1.8.23
|