Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/v0dro/benchmark-plot
A Ruby benchmark extension to allow comparative plotting of benchmarks.
https://github.com/v0dro/benchmark-plot
Last synced: 24 days ago
JSON representation
A Ruby benchmark extension to allow comparative plotting of benchmarks.
- Host: GitHub
- URL: https://github.com/v0dro/benchmark-plot
- Owner: v0dro
- License: bsd-3-clause
- Created: 2016-06-05T09:57:59.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2016-07-10T18:00:46.000Z (over 8 years ago)
- Last Synced: 2024-10-04T20:36:58.078Z (about 1 month ago)
- Language: Ruby
- Size: 387 KB
- Stars: 7
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: HISTORY.md
- License: LICENSE
Awesome Lists containing this project
- data-science-with-ruby - benchmark-plot
README
# benchmark-plot
A Ruby benchmark extension to allow comparative plotting of benchmarks.
# Screencast
Watch a screencast of gem usage [here](https://www.youtube.com/watch?v=WW6M4Df-soQ).
# 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 :arrdef initialize arr
@arr = arr
enddef to_s
@arr.size.to_s
end
endtest_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
endx.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.