2014-09-13 24 views
0

我有一个轻微的困境,有些人建议从控制器树继承中排除ActionController :: Base,并使用ActionController :: Metal来加速请求的表现,但主要应用程序依赖于舒适的墨西哥沙发CMS,这是依赖于Rails堆栈。合理排除ActionController :: Base如果应用程序中的Gem依赖于Rails

因此,问题会是什么:

  • 正在改变继承类会在这种情况下,有区别吗?为什么?
  • 如何测试控制器的性能谢谢。

回答

3

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

例如:

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

您可以通过使用一种称为机架迷你探查,也可以使用rails benchmark testing为同一宝石测量控制器操作的性能。

+0

谢谢塔伦,非常有用 – 2014-09-13 12:21:38

+0

@JackieChan如果有效的话,你能接受答案! – TarunJadhwani 2015-06-09 13:45:49

相关问题