在我的dev的沙箱耙資產:預編譯採取非常長時間才能完成
RAILS_ENV=production rake assets:precompile
接管了4分鐘完成。這是正常的嗎?在heroku上,這項工作需要10分鐘以上,有時會超時。有什麼辦法可以檢測這個和/或加快速度嗎?
UPDATE
我異形VS CSS
3.7 s js
175 s css
的數字是通過插在這裏
----------------------
/Users/bradphelan/.rvm/gems/[email protected]/gems/sprockets-2.1.2/lib/sprockets/processing.rb
----------------------
266 # Assign a compressor to run on `application/javascript` assets.
267 #
268 # The compressor object must respond to `compress` or `compile`.
269 def js_compressor=(compressor)
270 expire_index!
271
272 unregister_bundle_processor 'application/javascript', :js_compressor
273 return unless compressor
274
275 register_bundle_processor 'application/javascript', :js_compressor do |context, data|
276
277 timeit "js" do
278 compressor.compress(data)
279 end
280
281 end
282 end
和
----------------------
/Users/bradphelan/.rvm/gems/[email protected]/gems/sprockets-2.1.2/lib/sprockets/processing.rb
----------------------
241
242 # Assign a compressor to run on `text/css` assets.
243 #
244 # The compressor object must respond to `compress` or `compile`.
245 def css_compressor=(compressor)
246 expire_index!
247
248 unregister_bundle_processor 'text/css', :css_compressor
249 return unless compressor
250
251 register_bundle_processor 'text/css', :css_compressor do |context, data|
252 timeit "css" do
253 compressor.compress(data)
254 end
255 end
256 end
取得彙編JS階段
的timeit調用增加位做定時
def timeit context
s = Time.now
yield.tap do
e = Time.now
d = e - s
puts "#{d*1000}\t #{context}"
end
end
這裏有幾件事情我在提高性能的發現......並非真正的答案;更像是一些指針:[1]:http://stackoverflow.com/questions/9546831/rake-assetsprecompile-is-slooooow-any-way-to-speed-it-up [2]:http:// stackoverflow問題:8568786/rake-poorly-performance-pre-preprecile [3]:http://www.ruby-forum.com/topic/2538285 – ScottJShea 2012-03-16 16:15:56
實際上,其中一個鏈接看起來像是一個可能的候選人。我懷疑Rails應用程序多次被加載。 http://www.ruby-forum.com/topic/2538285#1026719 – bradgonesurfing 2012-03-16 19:47:35
噢,很好......我擔心我的回答會如此寬泛以至於很煩人。 – ScottJShea 2012-03-16 19:49:23