Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Old Slide Deck About Images

Mike Danko
July 24, 2013
36

Old Slide Deck About Images

Mike Danko

July 24, 2013
Tweet

Transcript

  1. Who? • TWC Systems Engineer • Network/Systems/Video Integration. Mostly Video.

    • Puts pic on slide, even though he’s standing right there.
  2. Who? • Artisan/Grill Fairy/Beer Czar at Neo • Rails and

    Stuff • Puts pic on slide, even though he’s standing right there.
  3. Small Site Operator • Difference between free and not on

    Heroku • More time for requests • Less of a chance of hitting the magic 30 second mark
  4. Everyone Else • More efficient workers == Less $$$ •

    Faster response == More $$$ • Less time doing the mundane means more time for the interesting.
  5. Peer Pressure • A simple gem change can improve performance

    by 220% • Another 15 minutes of work can offload uploads completely • It’s easy, come on.
  6. When Not To... • You’re on jRuby • Your processing

    needs are complex • You think you’re doing it right
  7. People Uploading • Don't tie up Ruby time • Given

    Workers, go direct to S3 when you are using S3 • Use nginx’s upload module if that’s your bag
  8. Basics • Your IO will block somewhere, avoid the CPU

    • Decoupling IO from processing will do you wonders. • Use workers to your advantage
  9. If You Give A Mouse an Image... • ImageMagick •

    GraphicsMagick • ImageSorcery • ImageScience • OpenCV • For the brave... Intel IPP
  10. Backing Methods • Pure Ruby: ChunkyPNG • C: RMagick, ImageScience

    • Subexec: MiniMagick, QuickMagick • Hybrids: ChunkyPNG/OilyPNG
  11. Something Bothered Me • Went about profiling and benchmarking Ruby

    • Went about profiling and benchmarking GM/ IM • Why is something as simple as changing the size of a picture so complex?
  12. ruby-prof breakdown 0 20 40 60 80 Sorcery (IM) Sorcery

    (GM) Science Mini (IM) Mini (GM) 73 40 0 0 0 14 20 0 10 12 0 31 14 23 28 23 30 16 22 34 Fit Fill Pad Slice Gif
  13. Rules of Thumb • Use ImageScience whenever you can •

    Next default to subexec’d GM • Use multiple gems if you need to, or patch an existing one. • Avoid calling IM/GM more than once per run