Rails如何优化我的网站?

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

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

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

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

无论你做什么来扩展或提高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压缩工具。

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

你可以按照你的建议做一些小事,但是可能通过使用选择性缓存或片段缓存来实现最大的改进。

缓存您可以不经常更改的所有内容。 您可以在更改时始终使部分缓存无效。

这是我能够通过RoR网站制作的唯一方式,即使速度也相当快。