mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Reduce extra object creations in TaggedLogging
tags_text method creates 3 Ruby objects per each logger call when no custom tags are given (which is the default setting, and so presumably the majority use case). This patch reduces two temporary object creations in this case. require 'allocation_tracer' ObjectSpace::AllocationTracer.setup(%i{type}) tags = ['a'] pp before: ObjectSpace::AllocationTracer.trace { tags.collect { |tag| "[#{tag}] " }.join } pp after: ObjectSpace::AllocationTracer.trace { "[#{tags[0]}] " } {:before=>{[:T_ARRAY]=>[1, 0, 0, 0, 0, 0], [:T_STRING]=>[2, 0, 0, 0, 0, 0]}} {:after=>{[:T_STRING]=>[1, 0, 0, 0, 0, 0]}}
This commit is contained in:
parent
2929d165c2
commit
ac93e7b5c1
1 changed files with 3 additions and 1 deletions
|
@ -52,7 +52,9 @@ module ActiveSupport
|
|||
|
||||
def tags_text
|
||||
tags = current_tags
|
||||
if tags.any?
|
||||
if tags.one?
|
||||
"[#{tags[0]}] "
|
||||
elsif tags.any?
|
||||
tags.collect { |tag| "[#{tag}] " }.join
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue