aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
diff options
context:
space:
mode:
authorclaudiob <claudiob@gmail.com>2014-10-17 11:38:00 -0700
committerclaudiob <claudiob@gmail.com>2014-10-17 11:46:37 -0700
commit6aa115e41f43b179d4c74526aa250d01e823d48d (patch)
treee0d4408b6a5b1a0e53c524688e9a38ae687c3e62 /activerecord/lib/active_record
parent8a80e3b6c446931330ad07130603712e8d0a2ff3 (diff)
downloadrails-6aa115e41f43b179d4c74526aa250d01e823d48d.tar.gz
rails-6aa115e41f43b179d4c74526aa250d01e823d48d.tar.bz2
rails-6aa115e41f43b179d4c74526aa250d01e823d48d.zip
Replace (slower) block.call with (faster) yield
Performance optimization: `yield` with an implicit `block` is faster than `block.call`. See http://youtu.be/fGFM_UrSp70?t=10m35s and the following benchmark: ```ruby require 'benchmark/ips' def fast yield end def slow(&block) block.call end Benchmark.ips do |x| x.report('fast') { fast{} } x.report('slow') { slow{} } end # => fast 154095 i/100ms # => slow 71454 i/100ms # => # => fast 7511067.8 (±5.0%) i/s - 37445085 in 4.999660s # => slow 1227576.9 (±6.8%) i/s - 6145044 in 5.028356s ```
Diffstat (limited to 'activerecord/lib/active_record')
0 files changed, 0 insertions, 0 deletions