2012-02-03 194 views
3

我需要为我的客户开发一个电子商务网站。 他希望速度非常快(每页1.25秒或更少)。 我有我的标准 - 3秒。 所以1.25秒很有挑战性。如何让我的网站这么快?

他向我展示了一个加载非常快的网站。 http://www.papayaclothing.com/shop/ 令人印象深刻。

我将用Spree电子商务解决方案(Ruby on Rails)进行开发。 但是,我不认为Ruby on Rails可以快速执行。

对我有何建议?

谢谢。

山姆

+1

使用更快的服务器,缓存等?你为什么认为Rails速度不快? – Dogbert 2012-02-03 08:00:39

+0

网络性能往往是一个瓶颈,因此您需要仔细优化资源和延迟负载,而这些并不是真正需要的。 Chrome Developer Tools(或Safari Web Inspector)中的审计面板,PageSpeed,YSlow等工具将为您完成这项任务。 – 2012-02-03 08:11:04

回答

9

因为这是一个庞大的问题,这个答案是一个社区的wiki,随意提高这个答案

网站的加载速度取决于许多因素:语言,框架,数据库,CPU,内存,缓存,...

顺便说一下,整个事情取决于更糟糕的元素。我不认为Ruby或Rails是这里的限制因素。

要开始您可以看到Spree是否是一个好的框架。以下是Spree在不同主机上的基准测试,并与纯Rails应用程序进行比较:http://blog.endpoint.com/2011/05/spree-performance-benchmarking.html

正如您所看到的,这将从0.5秒变为6秒!你可以注意到Spree版本在性能上有很大的提升。不幸的是,最新版本不在基准测试中......您应该尝试找到最新的基准。您还可以注意到,原始轨道应用乍一看,速度更快。

接下来你必须检查你的硬件:你的服务器是什么?专用与否?多少个CPU和RAM?你会增加吗?

我觉得DB也是一件需要注意的电子商务案例,因为我可以想象你有很多产品。因此,您可以测试不同的数据库引擎,并在Spree社区中查看推荐的引擎。

接下来,您可以感兴趣您在缓存:http://guides.rubyonrails.org/caching_with_rails.html

走得更远,你可以尝试一些memcached的商店为你把你的缓存RAM:http://guides.rubyonrails.org/caching_with_rails.html#activesupport-cache-memcachestore

3

查找最慢的动作(New Relic的是伟大的,他们的RPM精简版是免费的,虽然它只比去年30分钟报告)和分析,看看他们是渲染重或DB-重。我的猜测是你的情况是数据库沉重。 如果是这种情况,那么通过预先加载优化查询,消除n + 1个问题,并确保只返回相关数据,例如,如果您只需要用户名和电子邮件,请不要使用User.all。然后,你应该缓存任何你可以,例如实时数据并不重要。

欲了解更多信息:http://asciicasts.com/episodes/202-active-record-queries-in-rails-3http://synaptify.com/?p=106

2

你有几个选择这里,在前面提到的答案。

对于客户端性能改进,我强烈建议WebPagetest,YSlow和雅虎的Best Practices for Speeding Up Your Web Site作为良好的资源。

对于严格的Rails性能,我建议Rails'关于缓存的文档(已经建议)。我经常使用Rails低级缓存。整页缓存可应用于某些类型的页面,但如果库存波动很大,则通常不适用于产品页面。

Spree有一些性能问题,因为它是一种通用的电子商务解决方案,具有许多功能,您可能不会使用该增加的扩展。确保你有数据库索引,并考虑追求分析服务器进程,以查看最多运行最多的时间。很可能你需要重写某些Spree的功能来加快速度。

最后,谷歌认为0.25秒是快速网站的标准。

相关问题