diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2019-04-21 21:54:32 +0900 |
---|---|---|
committer | Ryuta Kamizono <kamipo@gmail.com> | 2019-04-21 21:54:32 +0900 |
commit | f9326e567ca0d9fe957e70de821a0a644b0b441d (patch) | |
tree | b5a2826a853a6a810d18e736e82eea4cb7f4761f /tools | |
parent | 96cf7e0e676c54cb8177de146efa27ed49c4b8c6 (diff) | |
download | rails-f9326e567ca0d9fe957e70de821a0a644b0b441d.tar.gz rails-f9326e567ca0d9fe957e70de821a0a644b0b441d.tar.bz2 rails-f9326e567ca0d9fe957e70de821a0a644b0b441d.zip |
Avoid method call if `@transaction_state` is not finalized
Method call in Ruby is a bit slow.
This makes attribute access 10% faster by avoiding method call
(`sync_with_transaction_state`).
Before (96cf7e0e):
```
Warming up --------------------------------------
user.id 131.291k i/100ms
user['id'] 91.786k i/100ms
user.name 151.605k i/100ms
user['name'] 92.664k i/100ms
user.changed? 17.772k i/100ms
user.saved_changes? 23.909k i/100ms
Calculating -------------------------------------
user.id 1.988M (± 7.0%) i/s - 9.978M in 5.051474s
user['id'] 1.155M (± 5.8%) i/s - 5.783M in 5.022672s
user.name 2.450M (± 4.3%) i/s - 12.280M in 5.021234s
user['name'] 1.263M (± 2.1%) i/s - 6.394M in 5.066638s
user.changed? 175.070k (±13.3%) i/s - 853.056k in 5.011555s
user.saved_changes? 259.114k (±11.8%) i/s - 1.267M in 5.001260s
```
After (this change):
```
Warming up --------------------------------------
user.id 137.625k i/100ms
user['id'] 96.054k i/100ms
user.name 156.379k i/100ms
user['name'] 94.795k i/100ms
user.changed? 18.172k i/100ms
user.saved_changes? 24.337k i/100ms
Calculating -------------------------------------
user.id 2.201M (± 0.5%) i/s - 11.010M in 5.002955s
user['id'] 1.320M (± 1.0%) i/s - 6.628M in 5.021293s
user.name 2.677M (± 1.6%) i/s - 13.449M in 5.024399s
user['name'] 1.314M (± 1.8%) i/s - 6.636M in 5.051444s
user.changed? 190.588k (±11.1%) i/s - 944.944k in 5.065848s
user.saved_changes? 262.782k (±12.1%) i/s - 1.290M in 5.028080s
```
Diffstat (limited to 'tools')
0 files changed, 0 insertions, 0 deletions