【问题标题】:How to calculate time taken for request to be served in rails?如何计算请求在 Rails 中服务所需的时间?
【发布时间】:2020-06-03 05:07:05
【问题描述】:

我想计算应用程序处理特定请求所花费的时间。即请求到达服务器的时间与服务器响应响应的时间之间的差异

在 c# 中,我们有一个名为 Global.ascx 的东西,其中我们有像 Application_BeginRequestApplication_EndRequest 这样的函数可以用于此目的。

Rails 是否同样包含这些类型的函数,我可以在其中记录请求时间?

【问题讨论】:

标签: ruby-on-rails logging


【解决方案1】:

默认情况下,Rails 会记录处理每个请求所花费的时间。如果您正在运行开发服务器,这些日志将发送到控制台和 log/development.log,以及将生产日志配置为进入生产模式的任何位置。

您正在寻找如下内容的行:

Completed 200 OK in 16ms (Views: 6.2ms | ActiveRecord: 1.8ms)

如果您需要测量比整个请求更精细的内容,您可以从检测指南开始:https://guides.rubyonrails.org/active_support_instrumentation.html#process-action-action-controller

【讨论】:

    【解决方案2】:

    在 ruby​​ 中有一个模块调用 Benchmark

    例如,

    def your_action_to_measure
      time = Benchmark.measure do
        #Your code here
      end
      puts time # => This will print the time in server.
    end
    

    希望这会有所帮助!

    【讨论】:

    • 虽然这有助于对单个方法或一段代码进行基准测试,但我看不出它与分析整个 Rails 应用程序有什么关系。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-10
    • 1970-01-01
    • 2015-03-30
    • 2012-06-15
    • 1970-01-01
    相关资源
    最近更新 更多