Created
September 7, 2011 11:05
-
-
Save toolmantim/1200301 to your computer and use it in GitHub Desktop.
TimeWithZone marshalling slow down
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # re. commit | |
| # https://github.com/rails/rails/commit/0d3615f04c79f6e90d8ab33fdfc920b8faac9cb8 | |
| # | |
| # Example of the slowdown if you `require 'tzinfo'` every time Time.find_zone is called | |
| # | |
| # This became a big problem when unmarshal'ing TimeWithZone objects, in say a Rails action, from memcache. 500ms was added to every request. | |
| # | |
| # e.g. of the problem: | |
| # | |
| # ActiveSupport::TimeWithZone#marshal_load calls | |
| # Time::find_zone calls | |
| # ActiveSupport::TimeZone#[] calls | |
| # ActiveSupport::TimeZone#lazy_zones_map calls | |
| # ActiveSupport::TimeZone#require_tzinfo which is slow as all hell. | |
| require 'active_support/time' | |
| require 'ruby-prof' | |
| r1 = RubyProf.profile do | |
| 10000.times do | |
| ::Time.find_zone("UTC") | |
| end | |
| end | |
| RubyProf::GraphPrinter.new(r1).print(STDOUT) | |
| # The fix | |
| ActiveSupport::TimeZone.class_eval do | |
| def self.require_tzinfo | |
| require 'tzinfo' unless defined?(::TZInfo) | |
| rescue LoadError | |
| $stderr.puts "You don't have tzinfo installed in your application. Please add it to your Gemfile and run bundle install" | |
| raise | |
| end | |
| end | |
| r2 = RubyProf.profile do | |
| 10000.times do | |
| ::Time.find_zone("UTC") | |
| end | |
| end | |
| RubyProf::GraphPrinter.new(r2).print(STDOUT) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Thread ID: 2151894860 | |
| Total Time: 0.643748 | |
| %total %self total self wait child calls Name | |
| -------------------------------------------------------------------------------- | |
| 100.00% 0.00% 0.64 0.00 0.00 0.64 1 Global#[No method] | |
| 0.64 0.01 0.00 0.63 1/1 Integer#times | |
| -------------------------------------------------------------------------------- | |
| 0.64 0.01 0.00 0.63 1/1 Global#[No method] | |
| 100.00% 2.09% 0.64 0.01 0.00 0.63 1 Integer#times | |
| 0.63 0.01 0.00 0.62 10000/10000 <Class::Time>#find_zone | |
| -------------------------------------------------------------------------------- | |
| 0.63 0.01 0.00 0.62 10000/10000 Integer#times | |
| 97.91% 2.27% 0.63 0.01 0.00 0.62 10000 <Class::Time>#find_zone | |
| 0.62 0.05 0.00 0.57 10000/10000 <Class::Time>#find_zone! | |
| -------------------------------------------------------------------------------- | |
| 0.62 0.05 0.00 0.57 10000/10000 <Class::Time>#find_zone | |
| 95.64% 7.64% 0.62 0.05 0.00 0.57 10000 <Class::Time>#find_zone! | |
| 0.53 0.03 0.00 0.50 10000/10000 <Class::ActiveSupport::TimeZone>#[] | |
| 0.02 0.01 0.00 0.01 10000/10002 Kernel#respond_to? | |
| 0.01 0.01 0.00 0.00 20000/20000 Kernel#is_a? | |
| 0.01 0.01 0.00 0.00 10000/10000 Kernel#nil? | |
| -------------------------------------------------------------------------------- | |
| 0.53 0.03 0.00 0.50 10000/10000 <Class::Time>#find_zone! | |
| 82.46% 4.99% 0.53 0.03 0.00 0.50 10000 <Class::ActiveSupport::TimeZone>#[] | |
| 0.49 0.02 0.00 0.47 10000/10000 <Class::ActiveSupport::TimeZone>#lazy_zones_map | |
| 0.01 0.01 0.00 0.00 10000/10001 Module#=== | |
| 0.00 0.00 0.00 0.00 1/2672 Hash#default | |
| -------------------------------------------------------------------------------- | |
| 0.49 0.02 0.00 0.47 10000/10000 <Class::ActiveSupport::TimeZone>#[] | |
| 76.59% 3.26% 0.49 0.02 0.00 0.47 10000 <Class::ActiveSupport::TimeZone>#lazy_zones_map | |
| 0.47 0.02 0.00 0.46 10000/10001 <Class::ActiveSupport::TimeZone>#require_tzinfo | |
| 0.00 0.00 0.00 0.00 1/3 Class#new | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/10001 ActiveSupport::TimeZone#initialize | |
| 0.47 0.02 0.00 0.46 10000/10001 <Class::ActiveSupport::TimeZone>#lazy_zones_map | |
| 73.34% 2.52% 0.47 0.02 0.00 0.46 10001 <Class::ActiveSupport::TimeZone>#require_tzinfo | |
| 0.46 0.03 0.00 0.43 10001/10026 Kernel#require | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 25/10026 Kernel#gem_original_require | |
| 0.46 0.03 0.00 0.43 10001/10026 <Class::ActiveSupport::TimeZone>#require_tzinfo | |
| 70.83% 4.77% 0.46 0.03 0.00 0.43 10026 Kernel#require | |
| 0.40 0.39 0.00 0.02 10027/10027 Kernel#gem_original_require | |
| 0.01 0.00 0.00 0.01 1/1 <Module::Gem>#try_activate | |
| 0.01 0.01 0.00 0.00 10026/10027 <Module::Gem>#unresolved_deps | |
| 0.01 0.01 0.00 0.00 10026/10027 Hash#empty? | |
| 0.00 0.00 0.00 0.00 1/1 Exception#message | |
| 0.00 0.00 0.00 0.00 1/1 String#end_with? | |
| 0.00 0.00 0.00 0.00 1/10001 Module#=== | |
| -------------------------------------------------------------------------------- | |
| 0.40 0.39 0.00 0.02 10027/10027 Kernel#require | |
| 61.59% 61.03% 0.40 0.39 0.00 0.02 10027 Kernel#gem_original_require | |
| 0.00 0.00 0.00 0.00 2669/2672 Hash#default | |
| 0.00 0.00 0.00 0.00 57/57 <Module::TZInfo::RubyCoreSupport>#rational_new! | |
| 0.00 0.00 0.00 0.00 17/17 Module#attr_reader | |
| 0.00 0.00 0.00 0.00 42/42 IO#set_encoding | |
| 0.00 0.00 0.00 0.00 144/161 Module#method_added | |
| 0.00 0.00 0.00 0.00 3/3 Module#include | |
| 0.00 0.00 0.00 0.00 33/34 BasicObject#singleton_method_added | |
| 0.00 0.00 0.00 0.00 21/21 Class#inherited | |
| 0.00 0.00 0.00 0.00 1/1 Module#module_function | |
| 0.00 0.00 0.00 0.00 1/3 Class#new | |
| 0.00 0.00 0.00 0.00 4/4 Module#protected | |
| 0.00 0.00 0.00 0.00 1/1 Array#include? | |
| 0.00 0.00 0.00 0.00 2/10002 Kernel#respond_to? | |
| 0.00 0.00 0.00 0.00 4/4 Module#private | |
| 0.00 0.00 0.00 0.00 1/125 <Class::File>#dirname | |
| 0.00 0.00 0.00 0.00 1/1 Exception#set_backtrace | |
| 0.00 0.00 0.00 0.00 1/1 Exception#exception | |
| 0.00 0.00 0.00 0.00 1/1 Exception#backtrace | |
| 0.00 0.00 0.00 0.00 25/10026 Kernel#require | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 2/10002 Kernel#gem_original_require | |
| 0.02 0.01 0.00 0.01 10000/10002 <Class::Time>#find_zone! | |
| 2.86% 2.02% 0.02 0.01 0.00 0.01 10002 Kernel#respond_to? | |
| 0.01 0.01 0.00 0.00 10001/10001 Kernel#respond_to_missing? | |
| -------------------------------------------------------------------------------- | |
| 0.01 0.00 0.00 0.01 1/1 Kernel#require | |
| 1.89% 0.00% 0.01 0.00 0.00 0.01 1 <Module::Gem>#try_activate | |
| 0.01 0.00 0.00 0.01 1/1 <Class::Gem::Specification>#find_by_path | |
| 0.00 0.00 0.00 0.00 1/1 Gem::Specification#activate | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 4/727 Enumerable#find_all | |
| 0.00 0.00 0.00 0.00 354/727 Gem::Specification#contains_requirable_file? | |
| 0.00 0.00 0.00 0.00 366/727 Array#each | |
| 0.00 0.00 0.00 0.00 1/727 Gem::Specification#activate_dependencies | |
| 0.00 0.00 0.00 0.00 1/727 Gem::Specification#conflicts | |
| 0.01 0.00 0.00 0.01 1/727 <Class::Gem::Specification>#each | |
| 1.87% 0.74% 0.01 0.00 0.00 0.01 727 Array#each | |
| 0.01 0.00 0.00 0.01 354/354 Gem::Specification#contains_requirable_file? | |
| 0.00 0.00 0.00 0.00 1097/1097 <Class::File>#file? | |
| 0.00 0.00 0.00 0.00 366/366 <Module::Gem>#suffixes | |
| 0.00 0.00 0.00 0.00 4/5 Gem::Specification#runtime_dependencies | |
| 0.00 0.00 0.00 0.00 4/4 Enumerable#find_all | |
| 0.00 0.00 0.00 0.00 4/4 Array#empty? | |
| 0.00 0.00 0.00 0.00 366/727 Array#each | |
| -------------------------------------------------------------------------------- | |
| 0.01 0.00 0.00 0.01 1/1 <Module::Gem>#try_activate | |
| 1.87% 0.00% 0.01 0.00 0.00 0.01 1 <Class::Gem::Specification>#find_by_path | |
| 0.01 0.00 0.00 0.01 1/1 Enumerable#find | |
| -------------------------------------------------------------------------------- | |
| 0.01 0.00 0.00 0.01 1/1 <Class::Gem::Specification>#find_by_path | |
| 1.87% 0.00% 0.01 0.00 0.00 0.01 1 Enumerable#find | |
| 0.01 0.00 0.00 0.01 1/1 <Class::Gem::Specification>#each | |
| -------------------------------------------------------------------------------- | |
| 0.01 0.00 0.00 0.01 1/1 Enumerable#find | |
| 1.87% 0.00% 0.01 0.00 0.00 0.01 1 <Class::Gem::Specification>#each | |
| 0.01 0.00 0.00 0.01 1/727 Array#each | |
| 0.00 0.00 0.00 0.00 1/1 <Class::Gem::Specification>#_all | |
| 0.00 0.00 0.00 0.00 1/1 Kernel#block_given? | |
| -------------------------------------------------------------------------------- | |
| 0.01 0.01 0.00 0.00 20000/20000 <Class::Time>#find_zone! | |
| 1.83% 1.83% 0.01 0.01 0.00 0.00 20000 Kernel#is_a? | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/10027 Gem::Specification#activate_dependencies | |
| 0.01 0.01 0.00 0.00 10026/10027 Kernel#require | |
| 1.77% 1.77% 0.01 0.01 0.00 0.00 10027 <Module::Gem>#unresolved_deps | |
| -------------------------------------------------------------------------------- | |
| 0.01 0.00 0.00 0.01 354/354 Array#each | |
| 1.76% 0.17% 0.01 0.00 0.00 0.01 354 Gem::Specification#contains_requirable_file? | |
| 0.00 0.00 0.00 0.00 354/355 Gem::Specification#full_gem_path | |
| 0.00 0.00 0.00 0.00 354/727 Array#each | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/10001 Kernel#require | |
| 0.01 0.01 0.00 0.00 10000/10001 <Class::ActiveSupport::TimeZone>#[] | |
| 0.85% 0.85% 0.01 0.01 0.00 0.00 10001 Module#=== | |
| -------------------------------------------------------------------------------- | |
| 0.01 0.01 0.00 0.00 10000/10000 <Class::Time>#find_zone! | |
| 0.84% 0.84% 0.01 0.01 0.00 0.00 10000 Kernel#nil? | |
| -------------------------------------------------------------------------------- | |
| 0.01 0.01 0.00 0.00 10001/10001 Kernel#respond_to? | |
| 0.84% 0.84% 0.01 0.01 0.00 0.00 10001 Kernel#respond_to_missing? | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/10027 Gem::Specification#raise_if_conflicts | |
| 0.01 0.01 0.00 0.00 10026/10027 Kernel#require | |
| 0.83% 0.83% 0.01 0.01 0.00 0.00 10027 Hash#empty? | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1097/1097 Array#each | |
| 0.56% 0.56% 0.00 0.00 0.00 0.00 1097 <Class::File>#file? | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/2672 Gem::Specification#activate | |
| 0.00 0.00 0.00 0.00 1/2672 Gem::Specification#raise_if_conflicts | |
| 0.00 0.00 0.00 0.00 1/2672 <Class::ActiveSupport::TimeZone>#[] | |
| 0.00 0.00 0.00 0.00 2669/2672 Kernel#gem_original_require | |
| 0.41% 0.38% 0.00 0.00 0.00 0.00 2672 Hash#default | |
| 0.00 0.00 0.00 0.00 1/1 Proc#yield | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/355 Array#map | |
| 0.00 0.00 0.00 0.00 354/355 Gem::Specification#contains_requirable_file? | |
| 0.33% 0.11% 0.00 0.00 0.00 0.00 355 Gem::Specification#full_gem_path | |
| 0.00 0.00 0.00 0.00 62/62 Gem::Specification#gems_dir | |
| 0.00 0.00 0.00 0.00 62/62 <Class::File>#directory? | |
| 0.00 0.00 0.00 0.00 62/62 Gem::Specification#full_name | |
| 0.00 0.00 0.00 0.00 62/62 <Class::File>#expand_path | |
| 0.00 0.00 0.00 0.00 62/125 <Class::File>#join | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 62/62 Gem::Specification#full_gem_path | |
| 0.10% 0.03% 0.00 0.00 0.00 0.00 62 Gem::Specification#gems_dir | |
| 0.00 0.00 0.00 0.00 62/62 Gem::Specification#base_dir | |
| 0.00 0.00 0.00 0.00 62/125 <Class::File>#join | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 57/57 Kernel#gem_original_require | |
| 0.07% 0.01% 0.00 0.00 0.00 0.00 57 <Module::TZInfo::RubyCoreSupport>#rational_new! | |
| 0.00 0.00 0.00 0.00 57/57 Kernel#Rational | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 366/366 Array#each | |
| 0.07% 0.07% 0.00 0.00 0.00 0.00 366 <Module::Gem>#suffixes | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 62/62 Gem::Specification#gems_dir | |
| 0.06% 0.03% 0.00 0.00 0.00 0.00 62 Gem::Specification#base_dir | |
| 0.00 0.00 0.00 0.00 124/125 <Class::File>#dirname | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 57/57 <Module::TZInfo::RubyCoreSupport>#rational_new! | |
| 0.05% 0.01% 0.00 0.00 0.00 0.00 57 Kernel#Rational | |
| 0.00 0.00 0.00 0.00 57/57 <Class::Rational>#convert | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 57/57 Kernel#Rational | |
| 0.04% 0.03% 0.00 0.00 0.00 0.00 57 <Class::Rational>#convert | |
| 0.00 0.00 0.00 0.00 114/114 Fixnum#div | |
| 0.00 0.00 0.00 0.00 114/114 Integer#integer? | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 62/62 Gem::Specification#full_gem_path | |
| 0.04% 0.04% 0.00 0.00 0.00 0.00 62 <Class::File>#directory? | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 62/62 Gem::Specification#full_gem_path | |
| 0.04% 0.03% 0.00 0.00 0.00 0.00 62 Gem::Specification#full_name | |
| 0.00 0.00 0.00 0.00 62/62 Gem::Specification#platform | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/125 Array#map | |
| 0.00 0.00 0.00 0.00 62/125 Gem::Specification#full_gem_path | |
| 0.00 0.00 0.00 0.00 62/125 Gem::Specification#gems_dir | |
| 0.03% 0.03% 0.00 0.00 0.00 0.00 125 <Class::File>#join | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/125 Kernel#gem_original_require | |
| 0.00 0.00 0.00 0.00 124/125 Gem::Specification#base_dir | |
| 0.03% 0.03% 0.00 0.00 0.00 0.00 125 <Class::File>#dirname | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 Hash#default | |
| 0.03% 0.00% 0.00 0.00 0.00 0.00 1 Proc#yield | |
| 0.00 0.00 0.00 0.00 1/1 <Class::ActiveSupport::TimeZone>#create | |
| 0.00 0.00 0.00 0.00 1/1 Hash#has_key? | |
| 0.00 0.00 0.00 0.00 1/2 Hash#[]= | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 Proc#yield | |
| 0.03% 0.00% 0.00 0.00 0.00 0.00 1 <Class::ActiveSupport::TimeZone>#create | |
| 0.00 0.00 0.00 0.00 1/1 ActiveSupport::TimeZone#initialize | |
| 0.00 0.00 0.00 0.00 1/3 <Class::BasicObject>#allocate | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 <Module::Gem>#try_activate | |
| 0.02% 0.00% 0.00 0.00 0.00 0.00 1 Gem::Specification#activate | |
| 0.00 0.00 0.00 0.00 1/1 Gem::Specification#raise_if_conflicts | |
| 0.00 0.00 0.00 0.00 1/1 Gem::Specification#add_self_to_load_path | |
| 0.00 0.00 0.00 0.00 1/1 Gem::Specification#activate_dependencies | |
| 0.00 0.00 0.00 0.00 1/2 Hash#[]= | |
| 0.00 0.00 0.00 0.00 1/2672 Hash#default | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 <Class::ActiveSupport::TimeZone>#create | |
| 0.02% 0.00% 0.00 0.00 0.00 0.00 1 ActiveSupport::TimeZone#initialize | |
| 0.00 0.00 0.00 0.00 1/10001 <Class::ActiveSupport::TimeZone>#require_tzinfo | |
| 0.00 0.00 0.00 0.00 1/1 <Class::ActiveSupport::TimeZone>#find_tzinfo | |
| 0.00 0.00 0.00 0.00 1/1 Kernel#class | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 17/17 Kernel#gem_original_require | |
| 0.02% 0.02% 0.00 0.00 0.00 0.00 17 Module#attr_reader | |
| 0.00 0.00 0.00 0.00 17/161 Module#method_added | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 17/161 Module#attr_reader | |
| 0.00 0.00 0.00 0.00 144/161 Kernel#gem_original_require | |
| 0.02% 0.02% 0.00 0.00 0.00 0.00 161 Module#method_added | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 62/62 Gem::Specification#full_gem_path | |
| 0.02% 0.02% 0.00 0.00 0.00 0.00 62 <Class::File>#expand_path | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 42/42 Kernel#gem_original_require | |
| 0.02% 0.02% 0.00 0.00 0.00 0.00 42 IO#set_encoding | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 Gem::Specification#activate | |
| 0.01% 0.00% 0.00 0.00 0.00 0.00 1 Gem::Specification#raise_if_conflicts | |
| 0.00 0.00 0.00 0.00 1/1 Gem::Specification#conflicts | |
| 0.00 0.00 0.00 0.00 1/2672 Hash#default | |
| 0.00 0.00 0.00 0.00 1/10027 Hash#empty? | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 114/114 <Class::Rational>#convert | |
| 0.01% 0.01% 0.00 0.00 0.00 0.00 114 Fixnum#div | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 Gem::Specification#raise_if_conflicts | |
| 0.01% 0.00% 0.00 0.00 0.00 0.00 1 Gem::Specification#conflicts | |
| 0.00 0.00 0.00 0.00 1/727 Array#each | |
| 0.00 0.00 0.00 0.00 1/1 Hash#values | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 62/62 Gem::Specification#full_name | |
| 0.01% 0.01% 0.00 0.00 0.00 0.00 62 Gem::Specification#platform | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 114/114 <Class::Rational>#convert | |
| 0.01% 0.01% 0.00 0.00 0.00 0.00 114 Integer#integer? | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 3/3 Kernel#gem_original_require | |
| 0.01% 0.00% 0.00 0.00 0.00 0.00 3 Module#include | |
| 0.00 0.00 0.00 0.00 3/3 Module#append_features | |
| 0.00 0.00 0.00 0.00 3/3 Module#included | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/3 Kernel#gem_original_require | |
| 0.00 0.00 0.00 0.00 1/3 <Class::TZInfo::Timezone>#new | |
| 0.00 0.00 0.00 0.00 1/3 <Class::ActiveSupport::TimeZone>#lazy_zones_map | |
| 0.01% 0.00% 0.00 0.00 0.00 0.00 3 Class#new | |
| 0.00 0.00 0.00 0.00 1/1 Hash#initialize | |
| 0.00 0.00 0.00 0.00 1/1 Exception#initialize | |
| 0.00 0.00 0.00 0.00 2/3 <Class::BasicObject>#allocate | |
| 0.00 0.00 0.00 0.00 1/1 <Class::Hash>#allocate | |
| 0.00 0.00 0.00 0.00 1/1 BasicObject#initialize | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 ActiveSupport::TimeZone#initialize | |
| 0.01% 0.00% 0.00 0.00 0.00 0.00 1 <Class::ActiveSupport::TimeZone>#find_tzinfo | |
| 0.00 0.00 0.00 0.00 1/1 <Class::TZInfo::TimezoneProxy>#new | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 Gem::Specification#activate | |
| 0.01% 0.00% 0.00 0.00 0.00 0.00 1 Gem::Specification#add_self_to_load_path | |
| 0.00 0.00 0.00 0.00 1/1 <Module::Gem>#load_path_insert_index | |
| 0.00 0.00 0.00 0.00 1/1 Array#map | |
| 0.00 0.00 0.00 0.00 1/1 Array#insert | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 <Class::ActiveSupport::TimeZone>#find_tzinfo | |
| 0.01% 0.00% 0.00 0.00 0.00 0.00 1 <Class::TZInfo::TimezoneProxy>#new | |
| 0.00 0.00 0.00 0.00 1/1 <Class::TZInfo::Timezone>#new | |
| 0.00 0.00 0.00 0.00 1/1 TZInfo::TimezoneProxy#setup | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 3/3 Module#include | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 3 Module#append_features | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/34 Module#module_function | |
| 0.00 0.00 0.00 0.00 33/34 Kernel#gem_original_require | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 34 BasicObject#singleton_method_added | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 21/21 Kernel#gem_original_require | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 21 Class#inherited | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/5 Gem::Specification#activate_dependencies | |
| 0.00 0.00 0.00 0.00 4/5 Array#each | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 5 Gem::Specification#runtime_dependencies | |
| 0.00 0.00 0.00 0.00 5/5 Gem::Specification#dependencies | |
| 0.00 0.00 0.00 0.00 5/5 Array#select | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 Gem::Specification#add_self_to_load_path | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 1 <Module::Gem>#load_path_insert_index | |
| 0.00 0.00 0.00 0.00 1/1 Array#index | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 <Class::TZInfo::TimezoneProxy>#new | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 1 <Class::TZInfo::Timezone>#new | |
| 0.00 0.00 0.00 0.00 1/3 Class#new | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 Gem::Specification#activate | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 1 Gem::Specification#activate_dependencies | |
| 0.00 0.00 0.00 0.00 1/5 Gem::Specification#runtime_dependencies | |
| 0.00 0.00 0.00 0.00 1/1 Hash#delete | |
| 0.00 0.00 0.00 0.00 1/727 Array#each | |
| 0.00 0.00 0.00 0.00 1/10027 <Module::Gem>#unresolved_deps | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 Kernel#gem_original_require | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 1 Module#module_function | |
| 0.00 0.00 0.00 0.00 1/34 BasicObject#singleton_method_added | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 <Module::Gem>#load_path_insert_index | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 1 Array#index | |
| 0.00 0.00 0.00 0.00 7/14 String#== | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 4/4 Kernel#gem_original_require | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 4 Module#protected | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 Kernel#gem_original_require | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 1 Array#include? | |
| 0.00 0.00 0.00 0.00 7/14 String#== | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 7/14 Array#include? | |
| 0.00 0.00 0.00 0.00 7/14 Array#index | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 14 String#== | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 Gem::Specification#add_self_to_load_path | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 1 Array#map | |
| 0.00 0.00 0.00 0.00 1/125 <Class::File>#join | |
| 0.00 0.00 0.00 0.00 1/355 Gem::Specification#full_gem_path | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 5/5 Gem::Specification#runtime_dependencies | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 5 Gem::Specification#dependencies | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 4/4 Array#each | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 4 Enumerable#find_all | |
| 0.00 0.00 0.00 0.00 4/727 Array#each | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 Class#new | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 1 Hash#initialize | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 Class#new | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 1 Exception#initialize | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 3/3 Module#include | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 3 Module#included | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 Proc#yield | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 1 Hash#has_key? | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 <Class::TZInfo::TimezoneProxy>#new | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 1 TZInfo::TimezoneProxy#setup | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 Gem::Specification#conflicts | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 1 Hash#values | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/2 Gem::Specification#activate | |
| 0.00 0.00 0.00 0.00 1/2 Proc#yield | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 2 Hash#[]= | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/3 <Class::ActiveSupport::TimeZone>#create | |
| 0.00 0.00 0.00 0.00 2/3 Class#new | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 3 <Class::BasicObject>#allocate | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 Kernel#require | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 1 Exception#message | |
| 0.00 0.00 0.00 0.00 1/1 Exception#to_s | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 4/4 Kernel#gem_original_require | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 4 Module#private | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 <Class::Gem::Specification>#each | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 1 <Class::Gem::Specification>#_all | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 5/5 Gem::Specification#runtime_dependencies | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 5 Array#select | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 Class#new | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 1 <Class::Hash>#allocate | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 Exception#message | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 1 Exception#to_s | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 Gem::Specification#add_self_to_load_path | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 1 Array#insert | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 4/4 Array#each | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 4 Array#empty? | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 Kernel#require | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 1 String#end_with? | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 Kernel#gem_original_require | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 1 Exception#exception | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 Kernel#gem_original_require | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 1 Exception#set_backtrace | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 ActiveSupport::TimeZone#initialize | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 1 Kernel#class | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 Gem::Specification#activate_dependencies | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 1 Hash#delete | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 Class#new | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 1 BasicObject#initialize | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 Kernel#gem_original_require | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 1 Exception#backtrace | |
| -------------------------------------------------------------------------------- | |
| 0.00 0.00 0.00 0.00 1/1 <Class::Gem::Specification>#each | |
| 0.00% 0.00% 0.00 0.00 0.00 0.00 1 Kernel#block_given? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Thread ID: 2151894860 | |
| Total Time: 0.235685 | |
| %total %self total self wait child calls Name | |
| -------------------------------------------------------------------------------- | |
| 100.00% 0.01% 0.24 0.00 0.00 0.24 1 Global#[No method] | |
| 0.24 0.02 0.00 0.22 1/1 Integer#times | |
| -------------------------------------------------------------------------------- | |
| 0.24 0.02 0.00 0.22 1/1 Global#[No method] | |
| 99.99% 7.55% 0.24 0.02 0.00 0.22 1 Integer#times | |
| 0.22 0.02 0.00 0.20 10000/10000 <Class::Time>#find_zone | |
| -------------------------------------------------------------------------------- | |
| 0.22 0.02 0.00 0.20 10000/10000 Integer#times | |
| 92.44% 8.01% 0.22 0.02 0.00 0.20 10000 <Class::Time>#find_zone | |
| 0.20 0.06 0.00 0.13 10000/10000 <Class::Time>#find_zone! | |
| -------------------------------------------------------------------------------- | |
| 0.20 0.06 0.00 0.13 10000/10000 <Class::Time>#find_zone | |
| 84.43% 27.22% 0.20 0.06 0.00 0.13 10000 <Class::Time>#find_zone! | |
| 0.09 0.04 0.00 0.05 10000/10000 <Class::ActiveSupport::TimeZone>#[] | |
| 0.02 0.02 0.00 0.01 10000/10000 Kernel#respond_to? | |
| 0.01 0.01 0.00 0.00 20000/20000 Kernel#is_a? | |
| 0.01 0.01 0.00 0.00 10000/10000 Kernel#nil? | |
| -------------------------------------------------------------------------------- | |
| 0.09 0.04 0.00 0.05 10000/10000 <Class::Time>#find_zone! | |
| 38.39% 17.60% 0.09 0.04 0.00 0.05 10000 <Class::ActiveSupport::TimeZone>#[] | |
| 0.04 0.03 0.00 0.02 10000/10000 <Class::ActiveSupport::TimeZone>#lazy_zones_map | |
| 0.01 0.01 0.00 0.00 10000/10000 Module#=== | |
| -------------------------------------------------------------------------------- | |
| 0.04 0.03 0.00 0.02 10000/10000 <Class::ActiveSupport::TimeZone>#[] | |
| 17.90% 11.20% 0.04 0.03 0.00 0.02 10000 <Class::ActiveSupport::TimeZone>#lazy_zones_map | |
| 0.02 0.02 0.00 0.00 10000/10000 <Class::ActiveSupport::TimeZone>#require_tzinfo | |
| -------------------------------------------------------------------------------- | |
| 0.02 0.02 0.00 0.01 10000/10000 <Class::Time>#find_zone! | |
| 9.68% 6.79% 0.02 0.02 0.00 0.01 10000 Kernel#respond_to? | |
| 0.01 0.01 0.00 0.00 10000/10000 Kernel#respond_to_missing? | |
| -------------------------------------------------------------------------------- | |
| 0.02 0.02 0.00 0.00 10000/10000 <Class::ActiveSupport::TimeZone>#lazy_zones_map | |
| 6.69% 6.69% 0.02 0.02 0.00 0.00 10000 <Class::ActiveSupport::TimeZone>#require_tzinfo | |
| -------------------------------------------------------------------------------- | |
| 0.01 0.01 0.00 0.00 20000/20000 <Class::Time>#find_zone! | |
| 6.30% 6.30% 0.01 0.01 0.00 0.00 20000 Kernel#is_a? | |
| -------------------------------------------------------------------------------- | |
| 0.01 0.01 0.00 0.00 10000/10000 <Class::ActiveSupport::TimeZone>#[] | |
| 2.89% 2.89% 0.01 0.01 0.00 0.00 10000 Module#=== | |
| -------------------------------------------------------------------------------- | |
| 0.01 0.01 0.00 0.00 10000/10000 Kernel#respond_to? | |
| 2.88% 2.88% 0.01 0.01 0.00 0.00 10000 Kernel#respond_to_missing? | |
| -------------------------------------------------------------------------------- | |
| 0.01 0.01 0.00 0.00 10000/10000 <Class::Time>#find_zone! | |
| 2.84% 2.84% 0.01 0.01 0.00 0.00 10000 Kernel#nil? |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment