@@ -22,7 +22,7 @@ def wrapper(fname):
22
22
return wrapper
23
23
24
24
25
- class nogil_groupby_count_2 (object ):
25
+ class nogil_groupby_base (object ):
26
26
goal_time = 0.2
27
27
28
28
def setup (self ):
@@ -33,6 +33,9 @@ def setup(self):
33
33
if (not have_real_test_parallel ):
34
34
raise NotImplementedError
35
35
36
+
37
+ class nogil_groupby_count_2 (nogil_groupby_base ):
38
+
36
39
def time_nogil_groupby_count_2 (self ):
37
40
self .pg2 ()
38
41
@@ -41,16 +44,7 @@ def pg2(self):
41
44
self .df .groupby ('key' )['data' ].count ()
42
45
43
46
44
- class nogil_groupby_last_2 (object ):
45
- goal_time = 0.2
46
-
47
- def setup (self ):
48
- self .N = 1000000
49
- self .ngroups = 1000
50
- np .random .seed (1234 )
51
- self .df = DataFrame ({'key' : np .random .randint (0 , self .ngroups , size = self .N ), 'data' : np .random .randn (self .N ), })
52
- if (not have_real_test_parallel ):
53
- raise NotImplementedError
47
+ class nogil_groupby_last_2 (nogil_groupby_base ):
54
48
55
49
def time_nogil_groupby_last_2 (self ):
56
50
self .pg2 ()
@@ -60,16 +54,7 @@ def pg2(self):
60
54
self .df .groupby ('key' )['data' ].last ()
61
55
62
56
63
- class nogil_groupby_max_2 (object ):
64
- goal_time = 0.2
65
-
66
- def setup (self ):
67
- self .N = 1000000
68
- self .ngroups = 1000
69
- np .random .seed (1234 )
70
- self .df = DataFrame ({'key' : np .random .randint (0 , self .ngroups , size = self .N ), 'data' : np .random .randn (self .N ), })
71
- if (not have_real_test_parallel ):
72
- raise NotImplementedError
57
+ class nogil_groupby_max_2 (nogil_groupby_base ):
73
58
74
59
def time_nogil_groupby_max_2 (self ):
75
60
self .pg2 ()
@@ -79,16 +64,7 @@ def pg2(self):
79
64
self .df .groupby ('key' )['data' ].max ()
80
65
81
66
82
- class nogil_groupby_mean_2 (object ):
83
- goal_time = 0.2
84
-
85
- def setup (self ):
86
- self .N = 1000000
87
- self .ngroups = 1000
88
- np .random .seed (1234 )
89
- self .df = DataFrame ({'key' : np .random .randint (0 , self .ngroups , size = self .N ), 'data' : np .random .randn (self .N ), })
90
- if (not have_real_test_parallel ):
91
- raise NotImplementedError
67
+ class nogil_groupby_mean_2 (nogil_groupby_base ):
92
68
93
69
def time_nogil_groupby_mean_2 (self ):
94
70
self .pg2 ()
@@ -98,16 +74,7 @@ def pg2(self):
98
74
self .df .groupby ('key' )['data' ].mean ()
99
75
100
76
101
- class nogil_groupby_min_2 (object ):
102
- goal_time = 0.2
103
-
104
- def setup (self ):
105
- self .N = 1000000
106
- self .ngroups = 1000
107
- np .random .seed (1234 )
108
- self .df = DataFrame ({'key' : np .random .randint (0 , self .ngroups , size = self .N ), 'data' : np .random .randn (self .N ), })
109
- if (not have_real_test_parallel ):
110
- raise NotImplementedError
77
+ class nogil_groupby_min_2 (nogil_groupby_base ):
111
78
112
79
def time_nogil_groupby_min_2 (self ):
113
80
self .pg2 ()
@@ -117,16 +84,7 @@ def pg2(self):
117
84
self .df .groupby ('key' )['data' ].min ()
118
85
119
86
120
- class nogil_groupby_prod_2 (object ):
121
- goal_time = 0.2
122
-
123
- def setup (self ):
124
- self .N = 1000000
125
- self .ngroups = 1000
126
- np .random .seed (1234 )
127
- self .df = DataFrame ({'key' : np .random .randint (0 , self .ngroups , size = self .N ), 'data' : np .random .randn (self .N ), })
128
- if (not have_real_test_parallel ):
129
- raise NotImplementedError
87
+ class nogil_groupby_prod_2 (nogil_groupby_base ):
130
88
131
89
def time_nogil_groupby_prod_2 (self ):
132
90
self .pg2 ()
@@ -136,16 +94,7 @@ def pg2(self):
136
94
self .df .groupby ('key' )['data' ].prod ()
137
95
138
96
139
- class nogil_groupby_sum_2 (object ):
140
- goal_time = 0.2
141
-
142
- def setup (self ):
143
- self .N = 1000000
144
- self .ngroups = 1000
145
- np .random .seed (1234 )
146
- self .df = DataFrame ({'key' : np .random .randint (0 , self .ngroups , size = self .N ), 'data' : np .random .randn (self .N ), })
147
- if (not have_real_test_parallel ):
148
- raise NotImplementedError
97
+ class nogil_groupby_sum_2 (nogil_groupby_base ):
149
98
150
99
def time_nogil_groupby_sum_2 (self ):
151
100
self .pg2 ()
@@ -155,107 +104,93 @@ def pg2(self):
155
104
self .df .groupby ('key' )['data' ].sum ()
156
105
157
106
158
- class nogil_groupby_sum_4 (object ):
159
- goal_time = 0.2
160
-
161
- def setup (self ):
162
- self .N = 1000000
163
- self .ngroups = 1000
164
- np .random .seed (1234 )
165
- self .df = DataFrame ({'key' : np .random .randint (0 , self .ngroups , size = self .N ), 'data' : np .random .randn (self .N ), })
166
- if (not have_real_test_parallel ):
167
- raise NotImplementedError
107
+ class nogil_groupby_sum_4 (nogil_groupby_base ):
168
108
169
109
def time_nogil_groupby_sum_4 (self ):
170
110
self .pg4 ()
171
111
172
112
def f (self ):
173
113
self .df .groupby ('key' )['data' ].sum ()
174
114
175
- def g2 (self ):
176
- for i in range (2 ):
177
- self .f ()
178
-
179
115
def g4 (self ):
180
116
for i in range (4 ):
181
117
self .f ()
182
118
183
- def g8 (self ):
184
- for i in range (8 ):
185
- self .f ()
186
-
187
- @test_parallel (num_threads = 2 )
188
- def pg2 (self ):
189
- self .f ()
190
-
191
119
@test_parallel (num_threads = 4 )
192
120
def pg4 (self ):
193
121
self .f ()
194
122
195
- @test_parallel (num_threads = 8 )
196
- def pg8 (self ):
197
- self .f ()
198
123
199
-
200
- class nogil_groupby_sum_8 (object ):
201
- goal_time = 0.2
202
-
203
- def setup (self ):
204
- self .N = 1000000
205
- self .ngroups = 1000
206
- np .random .seed (1234 )
207
- self .df = DataFrame ({'key' : np .random .randint (0 , self .ngroups , size = self .N ), 'data' : np .random .randn (self .N ), })
208
- if (not have_real_test_parallel ):
209
- raise NotImplementedError
124
+ class nogil_groupby_sum_8 (nogil_groupby_base ):
210
125
211
126
def time_nogil_groupby_sum_8 (self ):
212
127
self .pg8 ()
213
128
214
129
def f (self ):
215
130
self .df .groupby ('key' )['data' ].sum ()
216
131
217
- def g2 (self ):
218
- for i in range (2 ):
219
- self .f ()
220
-
221
- def g4 (self ):
222
- for i in range (4 ):
223
- self .f ()
224
-
225
132
def g8 (self ):
226
133
for i in range (8 ):
227
134
self .f ()
228
135
229
- @test_parallel (num_threads = 2 )
230
- def pg2 (self ):
231
- self .f ()
232
-
233
- @test_parallel (num_threads = 4 )
234
- def pg4 (self ):
235
- self .f ()
236
-
237
136
@test_parallel (num_threads = 8 )
238
137
def pg8 (self ):
239
138
self .f ()
240
139
241
140
242
- class nogil_groupby_var_2 (object ):
141
+ class nogil_groupby_var_2 (nogil_groupby_base ):
142
+
143
+ def time_nogil_groupby_var_2 (self ):
144
+ self .pg2 ()
145
+
146
+ @test_parallel (num_threads = 2 )
147
+ def pg2 (self ):
148
+ self .df .groupby ('key' )['data' ].var ()
149
+
150
+
151
+ class nogil_groupby_groups (object ):
243
152
goal_time = 0.2
244
153
245
154
def setup (self ):
246
- self .N = 1000000
247
- self .ngroups = 1000
248
155
np .random .seed (1234 )
249
- self .df = DataFrame ({'key' : np .random .randint (0 , self .ngroups , size = self .N ), 'data' : np .random .randn (self .N ), })
156
+ self .size = 2 ** 22
157
+ self .ngroups = 100
158
+ self .data = Series (np .random .randint (0 , self .ngroups , size = self .size ))
250
159
if (not have_real_test_parallel ):
251
160
raise NotImplementedError
252
161
253
- def time_nogil_groupby_var_2 (self ):
162
+ def f (self ):
163
+ self .data .groupby (self .data ).groups
164
+
165
+
166
+ class nogil_groupby_groups_2 (nogil_groupby_groups ):
167
+
168
+ def time_nogil_groupby_groups (self ):
254
169
self .pg2 ()
255
170
256
171
@test_parallel (num_threads = 2 )
257
172
def pg2 (self ):
258
- self .df .groupby ('key' )['data' ].var ()
173
+ self .f ()
174
+
175
+
176
+ class nogil_groupby_groups_4 (nogil_groupby_groups ):
177
+
178
+ def time_nogil_groupby_groups (self ):
179
+ self .pg4 ()
180
+
181
+ @test_parallel (num_threads = 4 )
182
+ def pg4 (self ):
183
+ self .f ()
184
+
185
+
186
+ class nogil_groupby_groups_8 (nogil_groupby_groups ):
187
+
188
+ def time_nogil_groupby_groups (self ):
189
+ self .pg8 ()
190
+
191
+ @test_parallel (num_threads = 8 )
192
+ def pg8 (self ):
193
+ self .f ()
259
194
260
195
261
196
class nogil_take1d_float64 (object ):
0 commit comments