require 'benchmark' module Kernel alias old_require require def require(path) #unless caller.find { |caller_line| caller_line.match /dependencies\.rb/ } # return old_require(path) #end output = nil @required_files ||= [] benchmark = Benchmark.measure do output = old_require path end @required_files << [path, benchmark] puts path caller.each do |caller_line| puts "\t#{caller_line}" end puts "" #puts "#{path}:" #puts loading_benchmark output end def print_require_benchmark_stats puts "Printing benchmark stats:" @required_files ||= [] @required_files.sort! { |a, b| b[1].real <=> a[1].real } @required_files.each do |path, benchmark| puts path puts benchmark end end end at_exit { print_require_benchmark_stats }