Время загрузки страницы, когда в жизненном цикле RoR вы запускаете / останавливаете таймер, чтобы получить эту статистику? - PullRequest
0 голосов
/ 15 октября 2010

Время загрузки страницы, когда в жизненном цикле RoR вы запускаете / останавливаете таймер для получения этой статистики?

Я знаю, что могу создать до / после на уровне контроллера, есть ли что-нибудь выше в цепочке, что я получаю запуск / остановку этого таймера?

Я хочу также получить сроки для производственного выпуска, а не только для режима разработки, где все происходит медленнее.

Ответы [ 2 ]

3 голосов
/ 15 октября 2010

Если бы я пытался получить наиболее полную картину своего времени отклика, я бы использовал что-то вроде RPM от NewRelic или построил бы что-то похожее на приведенный здесь пример http://asciicasts.com/episodes/151-rack-middleware

Отслеживая этоименно в промежуточном программном обеспечении вы получаете большую часть (если не все) стека Rails в метрике, а не просто вызов контроллера.Также вы можете использовать его для других вещей, таких как приложения Sinatra.:)

0 голосов
/ 28 марта 2012

я сделал что-то вроде Райана Бейтса в эпизоде ​​151, как упомянуто выше

require 'rack/utils'

class ResponseTimer
  def initialize(app, message = "Response Time")
    @app = app
    @message = message
  end

  def call(env)
    dup._call(env)
  end

  def _call(env)
    @start = Time.now
    @status, @headers, @response = @app.call(env)
    @stop = Time.now
    [@status, @headers, self]
  end

  def each(&block)
    block.call("<!-- #{@message}: #{@stop - @start} -->\n") if @headers["Content-Type"].include? "text/html"
    @response.each(&block)
  end
end

, но не учитывает время загрузки внешнего javascript / css

= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...