Skip to content

Instantly share code, notes, and snippets.

@wangjohn
Last active December 16, 2015 22:09
Show Gist options
  • Select an option

  • Save wangjohn/5505347 to your computer and use it in GitHub Desktop.

Select an option

Save wangjohn/5505347 to your computer and use it in GitHub Desktop.
Callbacks performance

activerecord/test/cases/associations_test.rb

On master (when scanning all of the callbacks):

  %   cumulative   self              self     total
 time   seconds   seconds    calls  ms/call  ms/call  name
  1.85     9.26      0.82    18412     0.04     0.05  ActiveSupport::Callbacks::Callback#matches?
  1.22    12.32      0.54    18412     0.03     0.08  ActiveSupport::Callbacks::Callback#duplicates?
  0.93    14.61      0.41    19600     0.02     0.21  ActiveSupport::Callbacks::CallbackChain#remove_duplicates


Finished tests in 1.217065s, 30.4010 tests/s, 53.4072 assertions/s.

On my branch (when using a hash to check callback duplication):

  %   cumulative   self              self     total
 time   seconds   seconds    calls  ms/call  ms/call  name
  0.15    29.63      0.06     1188     0.05     0.72  ActiveSupport::Callbacks::CallbackChain#handle_duplicates
  0.00    40.50      0.00       84     0.00     0.12  ActiveSupport::Callbacks::Callback#matches?
  0.00    40.50      0.00       84     0.00     0.12  ActiveSupport::Callbacks::Callback#duplicates?
  0.00    40.50      0.00       91     0.00     0.22  ActiveSupport::Callbacks::CallbackChain#scan_and_remove_duplicates

Finished tests in 1.117757s, 33.1020 tests/s, 58.1522 assertions/s.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment