提交 f80aa599 编写于 作者: S schneems

Decrease string allocations on AR#respond_to?

When a symbol is passed in, we call `to_s` on it which allocates a string. The two hardcoded symbols that are used internally are `:to_partial_path` and `:to_model`.

This change buys us 71,136 bytes of memory and 1,777 fewer objects per request.
上级 10e994cc
......@@ -230,7 +230,15 @@ def column_for_attribute(name)
# person.respond_to(:nothing) # => false
def respond_to?(name, include_private = false)
return false unless super
name = name.to_s
case name
when :to_partial_path
name = "to_partial_path".freeze
when :to_model
name = "to_model".freeze
else
name = name.to_s
end
# If the result is true then check for the select case.
# For queries selecting a subset of columns, return false for unselected columns.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册