diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2018-01-22 10:46:36 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-22 10:46:36 +0900 |
commit | a19e91f0fab13cca61acdb1f33e27be2323b9786 (patch) | |
tree | 232542abf240f11d86d0dbb4b4d3849b28eba650 /activemodel/lib/active_model/validations/confirmation.rb | |
parent | cf1c48478d1f48d763c3bee92d6bc6cfb3e63dba (diff) | |
download | rails-a19e91f0fab13cca61acdb1f33e27be2323b9786.tar.gz rails-a19e91f0fab13cca61acdb1f33e27be2323b9786.tar.bz2 rails-a19e91f0fab13cca61acdb1f33e27be2323b9786.zip |
PERF: Recover `changes_applied` performance (#31698)
#30985 caused `object.save` performance regression since calling
`changes` in `changes_applied` is very slow.
We don't need to call the expensive method in `changes_applied` as long
as `@attributes` is tracked by mutation tracker.
https://gist.github.com/kamipo/1a9f4f3891803b914fc72ede98268aa2
Before:
```
Warming up --------------------------------------
create_string_columns
73.000 i/100ms
Calculating -------------------------------------
create_string_columns
722.256 (± 5.8%) i/s - 3.650k in 5.073031s
```
After:
```
Warming up --------------------------------------
create_string_columns
96.000 i/100ms
Calculating -------------------------------------
create_string_columns
950.224 (± 7.7%) i/s - 4.800k in 5.084837s
```
Diffstat (limited to 'activemodel/lib/active_model/validations/confirmation.rb')
0 files changed, 0 insertions, 0 deletions