【问题标题】:How to save CPU cycles in Ruby/Rails?如何在 Ruby/Rails 中节省 CPU 周期?
【发布时间】:2012-05-08 15:00:44
【问题描述】:

在 Ruby Web 应用程序中节省 CPU 周期的方法有哪些?随着我的项目不断扩大,渲染、运行方法、数据库查询的平均时间也在增加。我认为60ms的平均值很高。 有什么设计指南可以保持机器代码的紧凑和紧凑吗?就像 - 完全面向对象? 使用更多变量和内存来避免重复迭代等?合并数据库查询?

【问题讨论】:

  • 如果你想要更快的代码尝试 java 或 C++
  • 同意。 Ruby 看起来非常强大,非常适合让东西快速运行,但不适合让东西快速运行。它是最慢的语言之一。但即使坚持使用 Ruby,也可能有一些方法可以加快速度。
  • 不过,这些方式依赖于现有代码。考虑到我们无法缩小性能问题的范围,需要整本书才能涵盖可能的优化。
  • 我还是 Ruby 新手,我的项目需要对这些数据进行太多处理。这两件事都会产生很长的代码,我认为有压缩的空间。

标签: ruby ruby-on-rails-3 performance performance-testing


【解决方案1】:

在真正开始调整所有内容之前尝试找出您的瓶颈。

您确定问题出在 CPU 上吗?它会是你的存储系统吗?是你的方法吗?是你的数据库吗?你在你的数据库中使用 idices 吗?您是否在数据库中使用了更多您需要的索引?

【讨论】:

    【解决方案2】:

    您的问题没有一站式解决方案。

    您应该针对分析器运行您的应用程序,该分析器将确定您的软件的哪个点占用的资源最多。优化该部分,然后重复操作,直到您对结果满意为止。

    有很多测量性能的工具,ruby-prof、gperftools 和 newrelic 之类的东西,在 google 上查看这个关键字

    【讨论】:

    【解决方案3】:

    你看过caching吗?它是加速您的 Web 应用程序并使其扩展到高流量的一个非常重要的工具,而且在许多情况下,它比常规代码优化效率要高几个数量级。

    【讨论】:

    • 缓存应该是分析和优化之后的最后一件事。很难维护和调试。记住一句名言,软件开发中最难的事情之一就是缓存失效。
    【解决方案4】:

    除了分析您的代码以查找实际速度较慢的部分的(正确)答案之外,您还可以查看对于您的用例来说可能更快的替代 Ruby 实现。

    见:

    用于报告比标准 1.9 解释器更快的两个替代方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-13
      • 2017-08-05
      • 1970-01-01
      • 2018-07-03
      相关资源
      最近更新 更多