File tree Expand file tree Collapse file tree 1 file changed +10
-6
lines changed Expand file tree Collapse file tree 1 file changed +10
-6
lines changed Original file line number Diff line number Diff line change 27
27
28
28
empty = { }
29
29
30
+ record_1 = BenchRecord . create . reload
31
+ record_2 = BenchRecord . create . reload
32
+ record_3 = BenchRecord . create . reload
33
+ def record_3 . changed_attribute_names_to_save ; attribute_names end # will always update all attributes
34
+
30
35
Benchmark . ips do |x |
31
36
x . config ( :suite => BenchTestHelper ::Suite ::INSTANCE )
32
37
33
- record = BenchRecord . create . reload
34
- x . report ( "BenchRecord#update()" ) do
35
- record . update empty
38
+ x . report ( "BenchRecord#update() [NOOP]" ) do
39
+ record_1 . update! empty # base-line expected to be a no-op
36
40
end
37
41
38
42
fields . each do |field , value |
39
43
label = value
40
44
label = "#{ value [ 0 , 16 ] } ...(#{ value . size } )" if value . is_a? ( String ) && value . size > 16
41
- record = BenchRecord . create . reload
42
45
x . report ( "BenchRecord#update('#{ field } ' => #{ label . inspect } )" ) do
43
- record . update ( field => value )
46
+ record_2 . send "#{ field } _will_change!" # forces the change even if the value did not change
47
+ record_2 . update! ( field => value )
44
48
end
45
49
end
46
50
47
51
x . report ( "BenchRecord#update(...)" ) do
48
- record . update ( fields )
52
+ record_3 . update! ( fields )
49
53
end
50
54
51
55
end
You can’t perform that action at this time.
0 commit comments