我有兴趣了解我的Ruby代码中每个require
语句加载需要多长时间(以秒为单位)。如何临时重写该方法并打印出一些日志信息以减少负载?
您可以这样覆盖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