From 0dfac2970b9f7055ffd14385ee132e67eca77ea6 Mon Sep 17 00:00:00 2001 From: Andy Meneely Date: Tue, 13 Jan 2015 17:52:27 -0500 Subject: [PATCH] Some basic benchmarks --- .gitignore | 4 +- Rakefile | 14 ++++++ benchmarks/shiny-purse.png | Bin 0 -> 3430 bytes benchmarks/spanner.svg | 91 +++++++++++++++++++++++++++++++++++++ benchmarks/tons_of_png.rb | 6 +++ benchmarks/tons_of_svg.rb | 7 +++ benchmarks/tons_of_text.rb | 8 ++++ 7 files changed, 129 insertions(+), 1 deletion(-) create mode 100644 benchmarks/shiny-purse.png create mode 100644 benchmarks/spanner.svg create mode 100644 benchmarks/tons_of_png.rb create mode 100644 benchmarks/tons_of_svg.rb create mode 100644 benchmarks/tons_of_text.rb diff --git a/.gitignore b/.gitignore index 2ede0bd..ccab349 100644 --- a/.gitignore +++ b/.gitignore @@ -27,4 +27,6 @@ samples/_img samples/_output/*.png samples/_output/*.pdf samples/_output/foo -rubocop.txt \ No newline at end of file +rubocop.txt +benchmarks/_output/*.png +benchmarks/_output/*.pdf \ No newline at end of file diff --git a/Rakefile b/Rakefile index 108c9e1..ec87530 100644 --- a/Rakefile +++ b/Rakefile @@ -1,6 +1,8 @@ +require 'squib' require 'bundler/gem_tasks' require 'rspec/core/rake_task' require 'yard' +require 'benchmark' task default: [:install, :spec] @@ -10,3 +12,15 @@ YARD::Rake::YardocTask.new(:doc) do |t| t.files = ['lib/**/*.rb', 'samples/**/*.rb'] # optional #t.options = ['--any', '--extra', '--opts'] # optional end + +task benchmark: [:install] do + Squib::logger.level = Logger::ERROR #silence warnings + Dir.chdir('benchmarks') do + Benchmark.bm(15) do |bm| + Dir['*.rb'].each do | script | + GC.start + bm.report(script) { load script } + end + end + end +end \ No newline at end of file diff --git a/benchmarks/shiny-purse.png b/benchmarks/shiny-purse.png new file mode 100644 index 0000000000000000000000000000000000000000..477ef93263039167c288100ed46d4c6bfb9bd500 GIT binary patch literal 3430 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 + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/benchmarks/tons_of_png.rb b/benchmarks/tons_of_png.rb new file mode 100644 index 0000000..6cfb9c4 --- /dev/null +++ b/benchmarks/tons_of_png.rb @@ -0,0 +1,6 @@ +require 'squib' + +Squib::Deck.new(cards: 200) do + png file: 'shiny-purse.png' + save_png prefix: 'tons_of_png_' +end \ No newline at end of file diff --git a/benchmarks/tons_of_svg.rb b/benchmarks/tons_of_svg.rb new file mode 100644 index 0000000..24a2bd2 --- /dev/null +++ b/benchmarks/tons_of_svg.rb @@ -0,0 +1,7 @@ +require 'squib' + +Squib::Deck.new(cards: 200) do + svg file: 'spanner.svg', + width: 400, height: 400 + save_png prefix: 'tons_of_svg_' +end \ No newline at end of file diff --git a/benchmarks/tons_of_text.rb b/benchmarks/tons_of_text.rb new file mode 100644 index 0000000..3d59510 --- /dev/null +++ b/benchmarks/tons_of_text.rb @@ -0,0 +1,8 @@ +require 'squib' + +Squib::Deck.new(cards: 200) do + text str: 'tweedle beetle battle ' * 250, + font: 'Sans bold 12', width: 825, + ellipsize: false + save_png prefix: 'tons_of_text_' +end \ No newline at end of file