分析开发中的缓慢资产

Ruby on Rails CSS

伽罗

2020-03-24

每次在开发中对SASS进行更改时,加载时都会获得20s +的加载时间application.css

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

  • 设置config.assets.debug = false
  • 更改进口和要求(我使用SASS变量)
  • 使用Miniprof及其Firegraph
  • 使用rails-asset_profile

这是我读到的内容:

我一直在Rails 3.2和4.2中遇到这个问题。

我要疯了。我如何找到这个混乱的瓶颈?

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

第3633篇《分析开发中的缓慢资产》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

2个回答
猪猪 2020.03.24

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

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

编辑:稍微更改了代码并更改了链接(昨天将链接放到错误的fork:急忙,仅在赏金关闭前15分钟才发现您的问题:))。我在项目中检查了此代码,它可以正常运行(该项目使用链轮3.3.3版)。

宝儿 2020.03.24

有一个称为quiet_assets的gem 可以抑制记录资产负载。在Rails 3.x时代,它极大地加速了我的开发模式。让我知道这是否有帮助。

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android