以下代碼只是將給定的字符串寫入存儲到文件系統的現有映像。就圖像處理而言,它並不是很複雜。但是,調用MiniMagick顯然會產生一些開銷。另外,這個例程會被非常頻繁地調用,所以它需要儘快完成。使MiniMagick例程儘可能在Ruby/Rails上運行?
除了將映像緩存到磁盤之外,我還有哪些選擇使用rails/ruby來確保此代碼在最高性能下運行?
variable = "some string"
mm = MiniMagick::Image.open("#{Rails.root}/app/assets/images/b.png")
mm.combine_options do |c|
c.gravity 'center'
c.pointsize '13'
c.draw "text 33,0 '#{variable}'"
end
send_data(mm.to_blob, :type => 'image/png', :disposition => 'inline'
您是否試圖使客戶端的HTTP調用盡可能快地返回?或者你是否試圖讓這個例程儘可能地運行? –
@JesseWolgamott好問題。其實兩者都有,但這裏的重點是圖像處理。但是無論在協議層面如何調整,這當然都會帶來巨大的好處。 :) –