Rails如何优化我的网站?

Rai*_*ner 3 optimization performance ruby-on-rails ruby-on-rails-3

我想让我的网站更快.我知道我可以制作CSS精灵并压缩我的HTML和CSS.

还有其他方法可以优化我的页面速度吗?

这个页面就是一个例子:http://www.vinderhimlen.dk/konkurrencer/vind-elektronik

加载共享按钮,评级星和Facebook喜欢它需要几秒钟.我真的想要优化它.我只是不认为最小化HTML和CSS就足够了.

Mid*_*ire 6

无论您如何扩展或提高Rails的性能,您都希望在之前和之后采用基准测试.很容易安装最新的性能增强插件或复制别人的技术,但是如果不测量执行时间,你永远不会知道你正在做的事情是提高性能还是降低性能.

性能是相对的,可以根据许多因素而变化.性能的两个方面对于扩展Rails非常重要:

  • 延迟 - 我们能以多快的速度回复请求?这是以请求和响应之间经过的时间来衡量的.
  • 吞吐量 - 我们可以在给定的时间内处理多少个请求?这是以每秒响应数来衡量的.

在我们进行一般性能测试后,我们可以很容易地看到瓶颈开始出现.此时,我们可以进一步使用打包工具将焦点范围缩小到以下一个或多个范围,这些范围最常见,最不常见:

  • 数据库问题:自定义SQL不正确,连接和关联不正确或不正确,数据库表格过大等.
  • 模型问题:业务规则过于复杂或设计不正确.
  • 前端视图问题:HTML或CSS选择不佳,极大的javascript库,未优化的图像等.
  • 交易问题:运行的Mongrel(或其他应用程序服务器)实例太少,硬件不够,写入不良或控制器不正确,应用程序架构不正确等.

通常人们认为交易问题是导致业绩不佳的原因,而更常见的是由其他类型的问题引起的.

如果您的设计设计不合理的SQL,非常大的数据库表或非最佳的连接或关联,无论您投入多少硬件,都可能永远不会提高性能.你的Rails应用程序不会扩展.同样的事情也适用于某些交易问题.在设计和编码开发阶段遵循不良做法时,会出现大多数可伸缩性问题.

以下工具将有助于确定您的瓶颈所处的位置......

  • " query_analyzer " - Bob Silva的MySQL工具,用于自动解析每个查询.
  • " ruby-prof " - 用C编写的快速Ruby代码分析器.
  • " pl_analyze " - 由Eric Hodel撰写,它分析了SysLogLogger的记录器输出.
  • " yslow " - 一个Firebug插件,用于测量和确定特定页面缓慢的原因.
  • " YUI压缩器 " - 来自雅虎表现团队的Javascript/CSS压缩工具.

一旦确定存在问题的位置,就可以更容易地进行调零并解决每个问题.