Sha256: 0a203894fda43db8f4d28df3c2b24bf3209b3bd4460b57e1ecadff33d1c2d8cf

Contents?: true

Size: 1 KB

Versions: 1

Compression:

Stored size: 1 KB

Contents

# 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](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.

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
benchmark-plot-0.1.1 README.md