Skip to content

Commit

Permalink
Update readme and gitignore files. README has better usage examples a…
Browse files Browse the repository at this point in the history
…nd links to acks.
  • Loading branch information
v0dro committed Jun 28, 2016
1 parent a5daf85 commit 8743b0d
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 2 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ build/

# for a library or gem, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# Gemfile.lock
Gemfile.lock
# .ruby-version
# .ruby-gemset

Expand Down
42 changes: 41 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,46 @@
# benchmark-plot

A Ruby benchmark extension to allow comparative plotting of benchmarks.

# Usage

This gem is mainly useful for benchmarking code over a number of inputs. This input should be supplied in the form of an object capable of calling `#each`.

Sample benchmarking script:

``` ruby
require 'benchmark/plot'

class TestArray
attr_reader :arr

def initialize arr
@arr = arr
end

def to_s
@arr.size.to_s
end
end

test_data = [5, 25, 50, 75, 100, 125, 150, 175, 200,250,300]
test_data.map! {|e| TestArray.new(Array.new(e) {|i| i}) }

Benchmark.plot(test_data) do |x|
x.report("map.flatten") do |data|
data.arr.map { [nil] }.flatten
end

x.report("flat_map") do |data|
data.arr.flat_map { [nil] }
end
end
```

Output:

![Benchmarks](examples/mapflat_vs_flat_map/benchmark_plot_graph.png)

# Acknowledgements

@tgxworld for providing the co-working space during the Open Source Breakfast Hack during Red Dot Ruby Conf 2016 where this gem was built.
[@tgxworld](https://github.com/tgxworld) for providing the co-working space during the Open Source Breakfast Hack during Red Dot Ruby Conference 2016 where this gem was built.

0 comments on commit 8743b0d

Please sign in to comment.