2011-06-12 69 views
3

我想让我的网站更快。我知道我可以制作CSS精灵并压缩我的HTML和CSS。Rails如何优化我的网站?

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

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

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

+1

你是否真的需要这么多分享按钮?我等了30秒,然后点击停止按钮(在我的5Mbit/s连接上)。 – 2011-06-12 20:10:54

+4

http://pagespeed.googlelabs.com/#url=http_3A_2F_2Fwww.vinderhimlen.dk_2Fkonkurrencer_2Find_elektronik&mobile=false – Dogbert 2011-06-12 20:14:34

+0

@Timofey - 是的,它是网站的重要组成部分。 JavaScript可以缓存这些按钮吗?他们是缓慢的...... – 2011-06-12 20:20:01

回答

6

不管你做什么来扩展或增加Rails的性能,你都会希望在之前和之后进行基准测试。安装最新的性能增强插件或者复制其他人的技术很容易,但是如果不测量执行时间,则永远不会知道所做的事情是否会提高性能或降低性能。

表现是相对的,可以根据很多因素而有所不同。有两个方面的性能对于缩放Rails很重要:

  • 延迟 - 我们可以以多快的速度回答请求?这是根据请求和响应之间的时间来衡量的。
  • 吞吐量 - 我们可以在给定的时间内处理多少个请求?这被测量为每秒响应。

在我们进行一般性能测试后,我们可以很容易地看到瓶颈开始出现。在这一点上,我们可以进一步使用打包工具来重点领域缩小到一个或多个以下,这是最常见的为最不常见的:

  • 数据库问题:可怜的自定义SQL,不正确或非最佳连接和关联,过大的数据库表等。
  • 模型问题:业务规则过于复杂或设计不正确。
  • 前端视图问题:可怜的HTML或CSS选择,非常大的JavaScript库,未优化的图像等
  • 事务性问题:太少的杂种狗(或其它应用服务器)实例上运行,而不是足够的硬件,写得不好或者非最优控制器,正确的架构应用等

通常人们认为的事务问题的表现不佳的原因,当更多的时候它是由其他类型的问题造成的。

如果您设计不佳的自定义SQL,超大型数据库表或非最佳连接或关联,无论您将多少硬件投入混合,都可能永远不会提高性能。您的Rails应用程序不会扩展。同样的事情适用于一些交易问题。如果在开发的设计和编码阶段遵循不好的实践,就会出现大多数可扩展性问题。

下面的工具将是决定您的瓶颈生活有帮助...

  • query_analyzer”鲍勃 - 席尔瓦的MySQL的工具,自动地解释每个查询。
  • ruby-prof” - 一种快速Ruby代码写入C.
  • pl_analyze” 探查 - 写由Eric霍德尔,此分析从SysLogLogger记录器输出。
  • yslow” - 一个Firebug插件,用于测量和确定特定页面缓慢的原因。
  • YUI compressor” - 雅虎表现团队的Javascript/CSS压缩工具。

一旦您确定存在问题的位置,就可以更轻松地将每个问题归零并解决。

-1

您可以按照您的建议做一些小事情,但最大的改进可能是使用选择性缓存或片段缓存。

缓存经常无法更改的所有内容。当他们改变时,您总是可以使部分缓存无效。

这是我能够通过RoR网站制作的唯一方法,甚至可以很快。

+3

这不是导致它慢的Rails,它是所有的图像,CSS和JavaScript,它们都是静态的。 – 2011-06-12 21:49:16