分析开发中的缓慢资产

时间:2014-03-04 22:49:10

标签: ruby-on-rails sass asset-pipeline

每次我在开发过程中对SASS进行更改时,加载application.css时我都会加载20秒+加载时间。

我已经阅读了其他一些问题,并尝试过:

  • 设置config.assets.debug = false
  • 更改导入并要求(我使用SASS变量)
  • 使用Miniprof及其火图
  • 使用rails-asset_profile

以下是我读到的内容:

我在Rails 3.2和现在的4.2中遇到过这个问题。

我在这里疯了。如何找到这个烂摊子的瓶颈?

我正在寻找一种解决方案,可以让我精确地确定花费时间的地方,并建议减少编译时间的方法。

1 个答案:

答案 0 :(得分:0)

在Sprockets :: Manifest类中查看find method处的sprockets源代码。您可以将其更改为以下内容:

paths.each do |path|
  start = Time.now
  puts "Start #{path}"
  environment.find_all_linked_assets(path) do |asset|
    yield asset
  end
  puts "Finished: #{Time.now - start}"
end

因此它将打印编译每个资产所需的所有时间。希望它会有所帮助:)

编辑:这段代码来自master分支。您可以使用

查看和编辑当前版本的sprockets
bundle open sprockets

更改后的输出:

$ rake assets:precompile 
Start admin.css
I, Ä2015-11-28T10:45:26.986231 #45492Ü  INFO -- : Writing /Users/sky/projects/photo_school/public/assets/admin-0e445dcfdc3bd3029943b7d3621b4156c9838eed229c3628f8c558cbb3ce1a59.css
Finished: 10.165564
编辑:改变了一些代码并更改了链接(昨天把链接放到错误的叉子上:匆忙,只在15分钟内找到你的问题才结束奖金:))。我在我的项目中检查了这段代码并且它正常工作(该项目使用链轮的3.3.3版本。)