Как я могу профилировать `require` заявления в Ruby? - PullRequest
0 голосов
/ 19 марта 2020

Мне интересно узнать, сколько времени (в секундах) занимает загрузка каждого оператора require в моем коде Ruby. Как я могу временно переопределить этот метод и распечатать некоторую информацию журнала для медленных загрузок?

1 Ответ

0 голосов
/ 19 марта 2020

Вы можете переопределить Kernel.require следующим образом:

module Kernel
  # make an alias of the original require
  alias_method :original_require, :require

  # rewrite require
  def require name
    start = Time.now

    # code to time
    ret = original_require name

    finish = Time.now
    diff = finish - start

    # TODO: This should really add up all of
    # the require calls for a certain module
    if diff > 0.1
      puts "#{diff} #{name}"
    end
    ret
  end
end
...