aboutsummaryrefslogtreecommitdiffstats
path: root/actionview/lib
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2014-07-16 16:24:57 -0300
committerRafael Mendonça França <rafaelmfranca@gmail.com>2014-07-16 16:42:53 -0300
commit9bbb3ca3066fc5dbaeddad97d995dbe435d0a031 (patch)
tree9a535a3cfa73edf55df2c9fbdadf7fd677524769 /actionview/lib
parentb5fbcc5d52f4e66e7d419b4e6c0172c4ee05ca6c (diff)
downloadrails-9bbb3ca3066fc5dbaeddad97d995dbe435d0a031.tar.gz
rails-9bbb3ca3066fc5dbaeddad97d995dbe435d0a031.tar.bz2
rails-9bbb3ca3066fc5dbaeddad97d995dbe435d0a031.zip
Use &= instead of select with include?
The performance is almost the same with both implementations but this is clear. Before this patch: Calculating ------------------------------------- small erb template 1452 i/100ms ------------------------------------------------- small erb template 17462.1 (±13.3%) i/s - 85668 in 5.031395s .Calculating ------------------------------------- small erb template with 1 partial 887 i/100ms ------------------------------------------------- small erb template with 1 partial 8899.6 (±18.8%) i/s - 42576 in 5.009453s .Calculating ------------------------------------- small erb template with 2 partials 666 i/100ms ------------------------------------------------- small erb template with 2 partials 6821.5 (±8.8%) i/s - 33966 in 5.020791s After the patch: Calculating ------------------------------------- small erb template 1479 i/100ms ------------------------------------------------- small erb template 15956.6 (±7.6%) i/s - 79866 in 5.036001s .Calculating ------------------------------------- small erb template with 1 partial 841 i/100ms ------------------------------------------------- small erb template with 1 partial 9242.2 (±6.9%) i/s - 46255 in 5.029497s .Calculating ------------------------------------- small erb template with 2 partials 615 i/100ms ------------------------------------------------- small erb template with 2 partials 6524.7 (±6.8%) i/s - 32595 in 5.020456s You can find the benchmark code at https://gist.github.com/rafaelfranca/dee31120cfdb1ddc3b56
Diffstat (limited to 'actionview/lib')
-rw-r--r--actionview/lib/action_view/lookup_context.rb5
1 files changed, 1 insertions, 4 deletions
diff --git a/actionview/lib/action_view/lookup_context.rb b/actionview/lib/action_view/lookup_context.rb
index ac89fb0829..ea687d9cca 100644
--- a/actionview/lib/action_view/lookup_context.rb
+++ b/actionview/lib/action_view/lookup_context.rb
@@ -66,10 +66,7 @@ module ActionView
def self.get(details)
if details[:formats]
details = details.dup
- syms = Mime::SET.symbols
- details[:formats] = details[:formats].select { |v|
- syms.include? v
- }
+ details[:formats] &= Mime::SET.symbols
end
@details_keys[details] ||= new
end