diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2017-01-01 06:49:46 +0900 |
---|---|---|
committer | Ryuta Kamizono <kamipo@gmail.com> | 2017-01-01 07:07:45 +0900 |
commit | 2b5dacb43dd92e98e1fd240a80c2a540ed380257 (patch) | |
tree | a0084a681b534ad82f61f7bb64bd2565daa217e3 /activerecord/test/cases/base_test.rb | |
parent | e632c2fa4cb60072a778ce95c952a0fa95e5b074 (diff) | |
download | rails-2b5dacb43dd92e98e1fd240a80c2a540ed380257.tar.gz rails-2b5dacb43dd92e98e1fd240a80c2a540ed380257.tar.bz2 rails-2b5dacb43dd92e98e1fd240a80c2a540ed380257.zip |
Change `timestamp_attributes_for_{create,update}` from symbol to string
`timestamp_attributes_for_{create,update}` is defined as symbol but
always used as string with `to_s`. This allocates extra strings. To
avoid extra allocation, change the definitions from symbol to string.
```ruby
pp ObjectSpace::AllocationTracer.trace {
1_000.times { |i|
Post.create!
}
}
```
Before:
```
["~/rails/activerecord/lib/active_record/timestamp.rb", 121]=>[1002, 0, 750, 0, 1, 18528],
["~/rails/activerecord/lib/active_record/timestamp.rb", 105]=>[1002, 0, 750, 0, 1, 7720],
["~/rails/activerecord/lib/active_record/timestamp.rb", 101]=>[1002, 0, 750, 0, 1, 7720],
["~/rails/activerecord/lib/active_record/timestamp.rb", 109]=>[1002, 0, 750, 0, 1, 13896],
["~/rails/activerecord/lib/active_record/timestamp.rb", 61]=>[4008, 0, 3000, 0, 1, 30880],
```
After:
```
["~/rails/activerecord/lib/active_record/timestamp.rb", 120]=>[1000, 0, 756, 0, 1, 17184],
["~/rails/activerecord/lib/active_record/timestamp.rb", 104]=>[1000, 0, 756, 0, 1, 7160],
["~/rails/activerecord/lib/active_record/timestamp.rb", 100]=>[1000, 0, 756, 0, 1, 7160],
["~/rails/activerecord/lib/active_record/timestamp.rb", 108]=>[1000, 0, 756, 0, 1, 12888],
```
Diffstat (limited to 'activerecord/test/cases/base_test.rb')
0 files changed, 0 insertions, 0 deletions