Sha256: 9342da2e1e282138843c0042e0f35b5d4b89bb480aedcd165cc152c01b397cf0

Contents?: true

Size: 1.33 KB

Versions: 5

Compression:

Stored size: 1.33 KB

Contents

require "rubygems"
require "bundler/setup"

require "benchmark"
require "chunky_png"

def image_file(name)
  File.join(File.dirname(__FILE__), "..", "spec", "resources", name)
end

def image_data(name)
  data = nil
  File.open(image_file(name), "rb") { |f| data = f.read }
  data
end

no_filtering_stream    = image_data("pixelstream_fast_rgba.png")
up_filtering_stream    = image_data("pixelstream_reference.png")
paeth_filtering_stream = image_data("pixelstream_best_compression.png")
rgba_pixelstream       = image_data("pixelstream.rgba")
rgb_pixelstream        = image_data("pixelstream.rgb")

n = (ENV["N"] || "5").to_i

puts "---------------------------------------------"
puts "ChunkyPNG (#{ChunkyPNG::VERSION}) decoding benchmark (n=#{n})"
puts "---------------------------------------------"
puts

Benchmark.bmbm do |x|
  x.report("PNG - no filtering")    { n.times { ChunkyPNG::Image.from_blob(no_filtering_stream) } }
  x.report("PNG - UP filtering")    { n.times { ChunkyPNG::Image.from_blob(up_filtering_stream) } }
  x.report("PNG - PAETH filtering") { n.times { ChunkyPNG::Image.from_blob(paeth_filtering_stream) } }
  x.report("From RGBA pixelstream") { n.times { ChunkyPNG::Image.from_rgba_stream(240, 180, rgba_pixelstream) } }
  x.report("From RGB pixelstream")  { n.times { ChunkyPNG::Image.from_rgb_stream(240, 180, rgb_pixelstream) } }
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
chunky_png-1.4.0 benchmarks/decoding_benchmark.rb
chunky_png-1.3.15 benchmarks/decoding_benchmark.rb
chunky_png-1.3.14 benchmarks/decoding_benchmark.rb
chunky_png-1.3.13 benchmarks/decoding_benchmark.rb
chunky_png-1.3.12 benchmarks/decoding_benchmark.rb