我的应用程序中的每个页面请求都会拉下大约30个资产(JavaScript和图像),这些资产都是供应商/和应用程序/内容中的第三方资源。当然,所有的JavaScript都是在生产环境中进行组合和缩小的,所以在那里很好,但是在开发中,它确实很慢。像加载页面8秒钟,只会变得更糟。这是正常的,可以做些什么来加快速度?正在开发的资产缓慢加载
我尝试将资源中的图像移动到公共/上,但它为它们提供的速度一样慢。每秒约3-4个文件。
这发生在具有WEBrick和Unicorn的快速Macbook Pro上。
我的应用程序中的每个页面请求都会拉下大约30个资产(JavaScript和图像),这些资产都是供应商/和应用程序/内容中的第三方资源。当然,所有的JavaScript都是在生产环境中进行组合和缩小的,所以在那里很好,但是在开发中,它确实很慢。像加载页面8秒钟,只会变得更糟。这是正常的,可以做些什么来加快速度?正在开发的资产缓慢加载
我尝试将资源中的图像移动到公共/上,但它为它们提供的速度一样慢。每秒约3-4个文件。
这发生在具有WEBrick和Unicorn的快速Macbook Pro上。
最有可能的问题是,Rails会重新加载每个资产请求上的所有类。这个宝石:https://github.com/wavii/rails-dev-tweaks通过调整Rails的自动加载规则解决了这个问题。
我相信铁轨必须在开发过程中每次都要编译资产,而对于生产来说,除了第一次导致开发缓慢之外,它没有任何问题。
你在麒麟开了多少工人? WEBrick可以一次处理一个请求,因此30个资产需要8秒是正常的。如果你用4-5名工人配置独角兽,它的加载速度要快得多 – bcd 2012-05-11 20:22:39
好主意,但我刚刚用2,5和16试过。不幸的是,没有明显的区别。为了清楚起见,我在config/unicorn.rb中设置了“worker_processes 5”,并运行了bundle exec unicorn_rails。 – mahemoff 2012-05-13 18:53:46
确保使用萤火虫或铬合金开发工具进行检查,以确定需要花费的时间 - 它可能是主页,而不是资产。我拥有近20个资产,所需时间不到1/2秒(页面上的数据库工作量很少)。 – Matthew 2012-05-15 01:50:27