0

我有一个小麻烦,有人建议从控制器树继承中排除 ActionController::Base 并使用 ActionController::Metal 来加快请求的性能,但是主要应用程序依赖于 Comfortable Mexican Sofa CMS,即依赖于 Rails 堆栈。

因此,问题将是什么:

  • 在这种情况下,更改继承类会有所不同吗?为什么?
  • 如何测试控制器的性能谢谢。
4

1 回答 1

3

ActionController::Metal 实际上是 ActionController::Base 的一个子版本。它不包括用于渲染视图、部分或其他响应的实用程序,从而提高了性能。根据RubyOnRails博客,人们报告说,与常规 Rails 操作相比,速度提高了 25 倍 。但 ActionContoller:Metal 主要用于构建 API,您可以在其中仅手动指定应用程序所需的实用程序。

例如:

class ApiController < ActionController::Metal
  include AbstractController::Rendering
  include ActionView::Layouts

您可以使用名为 rack-mini-profiler 的 gem 来测量控制器操作的性能,也可以使用rails 基准测试来进行相同的测试。

于 2014-09-13T10:22:33.617 回答