1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

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.
This commit is contained in:
Sam 2018-02-15 18:14:57 +11:00 committed by GitHub
parent 4865f6b589
commit 0b9bf2e2df
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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|