Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Perfomance benchmarks of libvips library in comparison with other various image processing systems.
Shell Ruby
tree: 4162f4e57a

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
image-magick
images
ruby
.document
.gitignore
Gemfile
Gemfile.lock
LICENSE.txt
README.md
Rakefile
runner

README.md

vips-benchmarks

The goal of this repo is to demonstrate performance of libvips library taken in comparison with other image processing systems.

Now the accent on ruby-vips, Ruby bindings for libvips library, is made, but later the number of libraries (and platforms, I hope) will grow.

June 26, 2012 - Status

The repo is a setup phase. Only two scripts for ruby-vips and rmagick are available in ruby/ folder. Please, do not expect all the code working stable and representative.

Benchmarks for 2012.06.26

stanislaw@localhost ~/work/gems/vips-benchmarks $ ./runner images/huge.jpg 
output/huge.jpg 

==== Ruby platform ====

Ruby-vips 0.1.1 built against vips-7.26.7-Tue May 22 02:54:27 EEST 2012

real    0m1.777s
user    0m3.259s
sys 0m0.099s

This is RMagick 2.13.1 ($Date: 2009/12/20 02:33:33 $) Copyright (C) 2009 by 
Timothy P. Hunter
Built with ImageMagick 6.7.7-5 2012-06-24 Q16 http://www.imagemagick.org
Built for ruby 1.9.3
Web page: http://rmagick.rubyforge.org
Email: rmagick@rubyforge.org

real    0m2.849s
user    0m3.516s
sys 0m0.171s


==== ImageMagick ====

Version: ImageMagick 6.7.7-5 2012-06-24 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC
Features: OpenMP    

+ convert 'images/huge.jpg[2360x1720+100+100]' -resize 90x90% -convolve '-1, 
-1, -1, -1, 16, -1, -1, -1, -1' output/huge.jpg

real    0m2.288s
user    0m5.393s
sys 0m0.256s

Performance test design

The repo has folders ruby/, cpp/ and others, each having platform specific scripts using various libraries available for this platform.

Each script is coded to execute the same scenario (see Scenario section).

Each folder has runner executable script, which runs all the scripts in its directory, for example ruby/runner runs ruby-vips and rmagick.rb scripts one by one.

Root folder contains runner script, containing links to all runner scripts available in repo.

See "Do it yourself" section for how to run benchmark scenario.

Scenario

Test scenario was taken from Speed and Memory use page from libvips Home page

Do it yourself

git clone https://github.com/stanislaw/vips-benchmarks

cd vips-benchmarks

# for all platforms
./runner images/huge.jpg output/huge.jpg

# or more specifically for ruby platform:
ruby/runner images/huge.jpg output/huge.jpg

# for one concrete library:
time ruby ruby/ruby-vips.rb images/huge.jpg output/huge.jpg

TODO

  • Scenario: more solid!
  • More libraries for ruby
  • More platforms (suggestions are welcome!)

Copyright

Copyright (c) 2012 Stanislaw Pankevich and (hopefully) John Cupitt.

Something went wrong with that request. Please try again.