diff options
author | Sam <sam.saffron@gmail.com> | 2018-02-15 18:14:57 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-15 18:14:57 +1100 |
commit | 0b9bf2e2df2f3e17cad25f4f5e5184fbd0191129 (patch) | |
tree | fafa1335652faf869f14074b72b84d806d2f9002 /activesupport | |
parent | 4865f6b58965078e314a22fdcefdf57ee56675b1 (diff) | |
download | rails-0b9bf2e2df2f3e17cad25f4f5e5184fbd0191129.tar.gz rails-0b9bf2e2df2f3e17cad25f4f5e5184fbd0191129.tar.bz2 rails-0b9bf2e2df2f3e17cad25f4f5e5184fbd0191129.zip |
PERF: symbolize ivar, to reduce dupes
I noticed this in my memory profiler report.
```
153 "@default_url_options"
152 /home/sam/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/activesupport-5.1.4/lib/active_support/core_ext/class/attribute.rb:84
```
152 copies of the string `@default_url_options` are retained on the heap in Discourse post boot.
Since this is just used for ivar lookups there is no need to use a string.
Diffstat (limited to 'activesupport')
-rw-r--r-- | activesupport/lib/active_support/core_ext/class/attribute.rb | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/activesupport/lib/active_support/core_ext/class/attribute.rb b/activesupport/lib/active_support/core_ext/class/attribute.rb index 7928efb871..fa33ff945f 100644 --- a/activesupport/lib/active_support/core_ext/class/attribute.rb +++ b/activesupport/lib/active_support/core_ext/class/attribute.rb @@ -98,7 +98,7 @@ class Class singleton_class.silence_redefinition_of_method("#{name}?") define_singleton_method("#{name}?") { !!public_send(name) } if instance_predicate - ivar = "@#{name}" + ivar = "@#{name}".to_sym singleton_class.silence_redefinition_of_method("#{name}=") define_singleton_method("#{name}=") do |val| |