我有一个小麻烦,有人建议从控制器树继承中排除 ActionController::Base 并使用 ActionController::Metal 来加快请求的性能,但是主要应用程序依赖于 Comfortable Mexican Sofa CMS,即依赖于 Rails 堆栈。
因此,问题将是什么:
- 在这种情况下,更改继承类会有所不同吗?为什么?
- 如何测试控制器的性能谢谢。
我有一个小麻烦,有人建议从控制器树继承中排除 ActionController::Base 并使用 ActionController::Metal 来加快请求的性能,但是主要应用程序依赖于 Comfortable Mexican Sofa CMS,即依赖于 Rails 堆栈。
因此,问题将是什么:
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 基准测试来进行相同的测试。