Bullet:提升Rails性能的子弹

在前段时间结束的Kungfu Rails大会上,黄志敏先生(Richard Huang)带来了一个关于如何通过插件、Gem的方式为Rails项目做贡献的主题。Richard开发了很多实用性很强的插件和Gem,Bullet就是其中之一。

\
设计Bullet插件/Gem的目的是通过减少查询的数量帮助开发者提升应用程序的性能。它会在你开发时监视应用程序的查询,并在应该添加Eager Loading(N+1查询)时给出提示;在无需使用Eager Loading或应该使用计数器缓存时,它同样会给出提示。
\

Bullet并不直接提升性能,它只是给出一些提示,指出哪些地方可以得到改善,随后由开发者自行添加:include或者:counter_cache

\

Bullet的使用非常方便,以插件或Gem方式安装后,经过简单配置即可直接使用(新版本增加了Growl支持,对于非MacOS用户,可以关闭该功能)。

\
\config.after_initialize do\  Bullet.enable = true\  Bullet.alert = true\  Bullet.bullet_logger = true  \  Bullet.console = true\  Bullet.growl = true\  Bullet.rails_logger = true\  Bullet.disable_browser_cache = true\end\
\

在开发环境下启动服务器,访问页面时,Bullet会弹出提示,告知可以改进的地方,同时在Bullet的日志中也会有相应记录。例如,项目提供的范例中就指出存在Post对Comment关系的N+1查询,开发者可以很快做出修改:

\
\The request has unused preload associations as follows:\None\The request has N+1 queries as follows:\model: Post =\u0026gt; associations: [comment]\
\

Bullet最近正受到越来越多的关注,最新一期的Scaling Rails – On The Edge – Part 1中第一个就介绍了Bullet,Ruby5RailsInSide也有相关报道,俨然是一枚提升性能的子弹。期待有更多国内开发者能积极贡献自己的力量,为开源社区添砖加瓦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值