九个衡量 Rails 应用性能的小方法

alt

你有个绝佳的商业创意,日复一日地将它完善丰满起来。后来,你雇了一群天赋异禀的开发者、Web 设计师和用户体验专家,他们用一种很是棒的框架——Ruby on Rails 帮你实现长久以来的梦想。html

你的网站诞生了!可是,不幸的是,你没有足够的资金用于搭建完善的服务器,你只是将她部署在内存有限的 linux 机器上。一个月的兴奋期以后,你忽然意识到,用户的访问量还不足以带来收益。更糟的是,用户流失率高于预期。因而你当即采起措施,寻找网站没法知足用户的具体需求。事实是,用户但愿网站响应及时、值得信赖,而这些,你的网站都没法达到。mysql

好吧,在给开发团队分配项目时,你没有考虑到这些。那么,如今该怎么作呢?linux

「性能提高」出场的时候到了。为了优化系统,你须要收集系统性能数据。对于一个庞杂的程序,人们很难准确预测性能问题的确切位置。而一旦发现性能瓶颈的所在,问题就迎刃而解了。sql

这里有一些衡量和监控 Ruby on Rails 应用性能的法宝,其中的一些也可应用在其余 Web 应用中。数据库

1. Rails 性能测试 – BenchMarking浏览器

alt

「不过早优化」和「采用基准测试」是性能优化的基本准则。基准测试是必须的,没有基准测试,优化的效果就无从衡量,全部优化的第一步都应该是基准测试。Rails 从2.2开始内置了 Benchmarker 和 Profiler 工具,经过 Rails 性能测试,可以发现应用资源的存储或速度瓶颈,而 BenchMarker 将有助于了解各项性能测试运行的速度有多快。ruby

2. Rails 性能测试 – Profiling性能优化

alt

有人形容 Benchmarker 和 Profiler 是性能调优的左右手,Profiler 有助于了解性能测试的细节,提供缓慢或内存不足部分的深刻图像。每一个测试用例在 Profiling 模式下运行一次,内置的 Profiler 实现得很简单,在 ruby2.2 中只有150行代码。服务器

3. Rails Logger网络

alt

Rails 内建了 Log 功能,或者更准确地说,Rails 暴露了 Logger 对象,该对象能够在全部的 Rails 程序中使用。获取性能信息最简单的方式是分析 Rails Log,它可以提供运行每条请求花费的时间信息,细分花费在渲染和 SQL 中的时间信息。

4. Rails Analyzer

alt

Rails 分析器包括一系列工具 [生产日志分析器,运行剖析,Rails 分析工具, SQL 依赖记录] 用来捕捉应用中最慢的地方,让错误优化变得更有针对性。

5. Rails Footnote

alt

这个工具能够显示应用的 footnotes,以便于调试,除此以外,它还能在编辑器里直接打开文件的连接。

6. Query Reviewer

alt

Query Reviewer 其实是对 mysql 的 explain 命令的封装,是一个方便的用于测试数据库查询效率的插件。它可以生成一个包含全部 SELECT 查询的解释页面,评估一个页面的数据库使用状况,展现交互记录。

7. Slim Scrooge

alt

Slim Scrooge 是一个优化层,用于确保你的 Rails 应用只在须要的时候才从数据库获取内容,最大限度的下降网络流量,减小 SQL 执行次数以及优化 Ruby 数据类型的转换过程。

8. OneAPM

alt

OneAPM for Ruby 可以深刻到全部 Ruby 应用内部完成应用性能管理和监控,包括代码级别性能问题的可见性、性能瓶颈的快速识别与追溯、真实用户体验监控、服务器监控和端到端的应用性能管理。追溯性能瓶颈至:性能表现差的 SQL 语句、第三方 API、Web Services、Caching Layers、后台任务等。

9. Firebug

alt

听说,对于网页开发人员来讲,Firebug 是 Firefox 浏览器中最好的插件之一。用户能够利用它除错、编辑、删改任何网站的 CSS、HTML、DOM、与 JavaScript 代码。此外,Firebug也提供扩展的框架,例如 Yahoo! 的网页速度优化建议工具 YSlow、FireCookie、FirePHP 等。除了一些很是优秀的功能,它还能够用于监控网络性能。使用它能够看到每一个文件的加载时间,根据类型区分文件,检查 http headers。

随着互联网应用大量涌现,应用性能的重要性也愈来愈被开发人员所重视。不及时改善性能会使用户的一再流失。以上这些都是检查 Rails 应用性能不错的方法,它们或多或少解决了不少开发者的燃眉之急,若是你还有更好的招数,不妨切磋。

翻译改编自原做者:Fuad Bin Omar, COO, Nascenia
原文连接 http://www.nascenia.com/10-ways-and-tools-to-measure-performance-of-yo...

本文系 OneAPM 工程师翻译。想阅读更多技术文章,请访问 OneAPM 官方博客

相关文章
相关标签/搜索