5种方法来加速你的Rails应用

Ruby是一门很“快”的编程语言,在很多方面表现得很好,但是你如果没有正确使用它,那么就这不是这样的啦。不注意的话,很容易让应用慢下来。接下来我指出5种方法来加速Rails应用。

这里说明一点,不要为了优化而优化,只有你在发现你的应用慢下来的关键,找准关键点,再针对它进行优化。

[size=large]预先载入关键对象:Eager Load Associations[/size]
:include选项知道吧,避免N+1次查询。当然只有你在你要用到关联的对象才使用这个。

[size=large]数据库能做的事情就让数据库来做好了:Do Database Work In the Database[/size]
数据库就是用来做大量数据检索和计算的,而Rails不是,所以如果是数据库能做的事情就让数据库来做好了。
举一个例子:你想看看当前登录的用户是否评论了某一篇文章,你不必查出这篇文章的所有评论记录,然后each,来与当前登录的关联评论比较。这个事情让数据库来做是这样的:[b]Article.comments.count(:conditions => ["user_id = ?", current_user.id]) > 0[/b]

[size=large]在HTTP请求周期里尽可以做少的事情:Do as Little as Possible During the HTTP Request Cycle[/size]
举个例子来说明这个问题:我们有可能要在一个控制器里发送大量的邮件,这样会导致发起的这个HTTP请求时间很长,我们可以将这个事情作为一个后台任务,让后端来执行。任务队列就是做这个事情的。Rails3中好像会有这样的一个东东,不过我建议你们可以看看 [url]http://github.com/tobi/delayed_job/tree/master[/url] 和 [url]http://github.com/github/bj/tree/master[/url]

[size=large]让Gem和Plugin来加速你吧 Know Your Gems and Plugins[/size]
Rails快速发展着,其中一个很好的现象就是社区中越来越多优秀的Gem和Plugin出现。在你要开发某一个特定功能的时候(如Vote)你可以先调研一下,看是不是有人已经完成了这样的工作。当然依赖一个GEM和PLugin是有风险的,所以在决定使用它们之前,一定要对它的源代码熟悉,研究一番。

[size=large]避免创建无用的对象 Avoid Creating Unnecessary Objects[/size]
这个不用多说,在Ruby中 方法后面多一个"!"号和没有这个感叹号的区别就能说明这一点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值