File tree Expand file tree Collapse file tree 7 files changed +65
-72
lines changed Expand file tree Collapse file tree 7 files changed +65
-72
lines changed Original file line number Diff line number Diff line change 25
25
'a_timestamp' => Time . now
26
26
}
27
27
28
- Benchmark . bmbm do |x |
28
+ Benchmark . ips do |x |
29
+ x . config ( :suite => BenchTestHelper ::Suite ::INSTANCE )
29
30
30
- x . report ( "BenchRecord.create() [#{ TIMES } x]" ) do
31
- TIMES . times do
32
- BenchRecord . create ( )
33
- end
31
+ x . report ( "BenchRecord.create()" ) do
32
+ BenchRecord . create ( )
34
33
end
35
34
36
35
fields . each do |field , value |
37
36
label = value
38
37
label = "#{ value [ 0 , 16 ] } ...(#{ value . size } )" if value . is_a? ( String ) && value . size > 16
39
- x . report ( "BenchRecord.create('#{ field } ' => #{ label . inspect } ) [#{ TIMES } x]" ) do
40
- attrs = Hash . new ; attrs [ field ] = value
41
- TIMES . times do
42
- BenchRecord . create ( attrs )
43
- end
38
+ x . report ( "BenchRecord.create('#{ field } ' => #{ label . inspect } )" ) do
39
+ BenchRecord . create ( field => value )
44
40
end
45
41
end
46
42
47
- x . report ( "BenchRecord.create(...) [#{ TIMES } x]" ) do
48
- attrs = fields . dup
49
- TIMES . times do
50
- BenchRecord . create ( attrs )
51
- end
43
+ x . report ( "BenchRecord.create(...)" ) do
44
+ BenchRecord . create ( fields . dup )
52
45
end
53
46
54
47
end
Original file line number Diff line number Diff line change 4
4
5
5
BenchTestHelper . gc
6
6
7
- Benchmark . bmbm do |x |
7
+ Benchmark . ips do |x |
8
+ x . config ( :suite => BenchTestHelper ::Suite ::INSTANCE )
8
9
9
10
total = BenchRecord . count
10
11
11
- x . report ( "BenchRecord.first(10) [#{ TIMES } x]" ) do
12
- TIMES . times do
13
- BenchRecord . first ( 10 )
14
- end
12
+ x . report ( "BenchRecord.first(10)" ) do
13
+ BenchRecord . first ( 10 )
15
14
end
16
15
17
- x . report ( "BenchRecord.last(100) [#{ TIMES } x]" ) do
18
- TIMES . times do
19
- BenchRecord . last ( 100 )
20
- end
16
+ x . report ( "BenchRecord.last(100)" ) do
17
+ BenchRecord . last ( 100 )
21
18
end
22
19
23
- x . report ( "BenchRecord.limit(100).load [#{ TIMES } x]" ) do
24
- TIMES . times do
25
- BenchRecord . limit ( 100 ) . load
26
- end
20
+ x . report ( "BenchRecord.limit(100).load" ) do
21
+ BenchRecord . limit ( 100 ) . load
27
22
end
28
23
29
24
end
Original file line number Diff line number Diff line change 4
4
5
5
BenchTestHelper . gc
6
6
7
- Benchmark . bmbm do |x |
7
+ Benchmark . ips do |x |
8
+ x . config ( :suite => BenchTestHelper ::Suite ::INSTANCE )
8
9
9
10
an_id = BenchRecord . last . id
10
11
11
- x . report ( "BenchRecord.find( an_id ) [#{ TIMES } x]" ) do
12
- TIMES . times do
13
- BenchRecord . find ( an_id )
14
- end
12
+ x . report ( "BenchRecord.find(an_id)" ) do
13
+ BenchRecord . find ( an_id )
15
14
end
16
15
17
- x . report ( "BenchRecord.find( an_id ).attributes [#{ TIMES } x]" ) do
18
- TIMES . times do
19
- BenchRecord . find ( an_id ) . attributes
20
- end
16
+ x . report ( "BenchRecord.find(an_id).attributes" ) do
17
+ BenchRecord . find ( an_id ) . attributes
21
18
end
22
19
23
20
end
Original file line number Diff line number Diff line change 1
1
require File . expand_path ( 'setup' , File . dirname ( __FILE__ ) )
2
2
3
- Benchmark . bmbm do |x |
4
- x . report ( "ActiveRecord::ConnectionAdapters::Column.string_to_time [ #{ TIMES } x]" ) do
5
- TIMES . times do
6
- ActiveRecord ::ConnectionAdapters ::Column . string_to_time ( "Wed, 04 Sep 2013 03:00:00 EAT" )
7
- end
3
+ Benchmark . ips do |x |
4
+ x . config ( :suite => BenchTestHelper :: Suite :: INSTANCE )
5
+
6
+ x . report ( " ActiveRecord::ConnectionAdapters::Column.string_to_time" ) do
7
+ ActiveRecord :: ConnectionAdapters :: Column . string_to_time ( "Wed, 04 Sep 2013 03:00:00 EAT" )
8
8
end
9
- end
9
+ end
Original file line number Diff line number Diff line change 19
19
'*'
20
20
]
21
21
22
- Benchmark . bmbm do |x |
22
+ Benchmark . ips do |x |
23
+ x . config ( :suite => BenchTestHelper ::Suite ::INSTANCE )
23
24
24
25
total = BenchRecord . count
25
26
an_id = BenchRecord . last . id
26
27
27
28
selects . each do |select |
28
- x . report ( "BenchRecord.select('#{ select } ').where(id: i).first [#{ TIMES } x]" ) do
29
- TIMES . times do |i |
30
- BenchRecord . select ( select ) . where ( id : i % total ) . first
31
- end
29
+ x . report ( "BenchRecord.select('#{ select } ').where(id: i).first" ) do
30
+ BenchRecord . select ( select ) . where ( id : i % total ) . first
32
31
end
33
32
end
34
33
35
34
selects . each do |select |
36
- x . report ( "BenchRecord.select('#{ select } ').where(['id = ?', an_id]).first [#{ TIMES } x]" ) do
37
- TIMES . times do
38
- BenchRecord . select ( select ) . where ( [ 'id = ?' , an_id ] ) . first
39
- end
35
+ x . report ( "BenchRecord.select('#{ select } ').where(['id = ?', an_id]).first" ) do
36
+ BenchRecord . select ( select ) . where ( [ 'id = ?' , an_id ] ) . first
40
37
end
41
38
end
42
39
Original file line number Diff line number Diff line change 27
27
28
28
empty = { }
29
29
30
- records = [ ] ; TIMES . times { records << BenchRecord . create . reload }
30
+ Benchmark . ips do |x |
31
+ x . config ( :suite => BenchTestHelper ::Suite ::INSTANCE )
31
32
32
- Benchmark . bmbm do |x |
33
-
34
- x . report ( "BenchRecord#update() [#{ TIMES } x]" ) do
35
- TIMES . times do |i |
36
- records [ i ] . update empty
37
- end
33
+ record = BenchRecord . create . reload
34
+ x . report ( "BenchRecord#update()" ) do
35
+ record . update empty
38
36
end
39
37
40
38
fields . each do |field , value |
41
39
label = value
42
40
label = "#{ value [ 0 , 16 ] } ...(#{ value . size } )" if value . is_a? ( String ) && value . size > 16
43
- attrs = Hash . new ; attrs [ field ] = value
44
- x . report ( "BenchRecord#update('#{ field } ' => #{ label . inspect } ) [#{ TIMES } x]" ) do
45
- # attrs = Hash.new; attrs[field] = value
46
- TIMES . times do |i |
47
- records [ i ] . update ( attrs )
48
- end
41
+ record = BenchRecord . create . reload
42
+ x . report ( "BenchRecord#update('#{ field } ' => #{ label . inspect } )" ) do
43
+ record . update ( field => value )
49
44
end
50
45
end
51
46
52
- attrs = fields
53
- x . report ( "BenchRecord#update(...) [#{ TIMES } x]" ) do
54
- # attrs = fields.dup
55
- TIMES . times do |i |
56
- records [ i ] . update ( attrs )
57
- end
47
+ x . report ( "BenchRecord#update(...)" ) do
48
+ record . update ( fields )
58
49
end
59
50
60
51
end
Original file line number Diff line number Diff line change 1
1
# frozen_string_literal: false
2
2
3
- require 'rubygems' unless defined? Gem
3
+ require 'benchmark/ips'
4
4
5
5
if ENV [ 'RAILS' ] # Use local clone of Rails
6
6
rails_dir = ENV [ 'RAILS' ]
@@ -120,6 +120,26 @@ def gc; GC.start end
120
120
121
121
end
122
122
123
+ class Suite # for Benchmar.ips
124
+
125
+ def warming ( *)
126
+ BenchTestHelper . gc
127
+ end
128
+
129
+ def running ( *)
130
+ BenchTestHelper . gc
131
+ end
132
+
133
+ def warmup_stats ( *)
134
+ end
135
+
136
+ def add_report ( *)
137
+ end
138
+
139
+ INSTANCE = self . new
140
+
141
+ end
142
+
123
143
end
124
144
125
145
def do_profile_data ( &block )
You can’t perform that action at this time.
0 commit comments