]> git.proxmox.com Git - mirror_edk2.git/blame - AppPkg/Applications/Python/Python-2.7.2/Tools/pybench/Lists.py
EmbeddedPkg: Extend NvVarStoreFormattedLib LIBRARY_CLASS
[mirror_edk2.git] / AppPkg / Applications / Python / Python-2.7.2 / Tools / pybench / Lists.py
CommitLineData
4710c53d 1from pybench import Test\r
2\r
3class SimpleListManipulation(Test):\r
4\r
5 version = 2.0\r
6 operations = 5* (6 + 6 + 6)\r
7 rounds = 130000\r
8\r
9 def test(self):\r
10\r
11 l = []\r
12 append = l.append\r
13\r
14 for i in xrange(self.rounds):\r
15\r
16 append(2)\r
17 append(3)\r
18 append(4)\r
19 append(2)\r
20 append(3)\r
21 append(4)\r
22\r
23 l[0] = 3\r
24 l[1] = 4\r
25 l[2] = 5\r
26 l[3] = 3\r
27 l[4] = 4\r
28 l[5] = 5\r
29\r
30 x = l[0]\r
31 x = l[1]\r
32 x = l[2]\r
33 x = l[3]\r
34 x = l[4]\r
35 x = l[5]\r
36\r
37 append(2)\r
38 append(3)\r
39 append(4)\r
40 append(2)\r
41 append(3)\r
42 append(4)\r
43\r
44 l[0] = 3\r
45 l[1] = 4\r
46 l[2] = 5\r
47 l[3] = 3\r
48 l[4] = 4\r
49 l[5] = 5\r
50\r
51 x = l[0]\r
52 x = l[1]\r
53 x = l[2]\r
54 x = l[3]\r
55 x = l[4]\r
56 x = l[5]\r
57\r
58 append(2)\r
59 append(3)\r
60 append(4)\r
61 append(2)\r
62 append(3)\r
63 append(4)\r
64\r
65 l[0] = 3\r
66 l[1] = 4\r
67 l[2] = 5\r
68 l[3] = 3\r
69 l[4] = 4\r
70 l[5] = 5\r
71\r
72 x = l[0]\r
73 x = l[1]\r
74 x = l[2]\r
75 x = l[3]\r
76 x = l[4]\r
77 x = l[5]\r
78\r
79 append(2)\r
80 append(3)\r
81 append(4)\r
82 append(2)\r
83 append(3)\r
84 append(4)\r
85\r
86 l[0] = 3\r
87 l[1] = 4\r
88 l[2] = 5\r
89 l[3] = 3\r
90 l[4] = 4\r
91 l[5] = 5\r
92\r
93 x = l[0]\r
94 x = l[1]\r
95 x = l[2]\r
96 x = l[3]\r
97 x = l[4]\r
98 x = l[5]\r
99\r
100 append(2)\r
101 append(3)\r
102 append(4)\r
103 append(2)\r
104 append(3)\r
105 append(4)\r
106\r
107 l[0] = 3\r
108 l[1] = 4\r
109 l[2] = 5\r
110 l[3] = 3\r
111 l[4] = 4\r
112 l[5] = 5\r
113\r
114 x = l[0]\r
115 x = l[1]\r
116 x = l[2]\r
117 x = l[3]\r
118 x = l[4]\r
119 x = l[5]\r
120\r
121 if len(l) > 10000:\r
122 # cut down the size\r
123 del l[:]\r
124\r
125 def calibrate(self):\r
126\r
127 l = []\r
128 append = l.append\r
129\r
130 for i in xrange(self.rounds):\r
131 pass\r
132\r
133class ListSlicing(Test):\r
134\r
135 version = 2.0\r
136 operations = 25*(3+1+2+1)\r
137 rounds = 800\r
138\r
139 def test(self):\r
140\r
141 n = range(100)\r
142 r = range(25)\r
143\r
144 for i in xrange(self.rounds):\r
145\r
146 l = n[:]\r
147\r
148 for j in r:\r
149\r
150 m = l[50:]\r
151 m = l[:25]\r
152 m = l[50:55]\r
153 l[:3] = n\r
154 m = l[:-1]\r
155 m = l[1:]\r
156 l[-1:] = n\r
157\r
158 def calibrate(self):\r
159\r
160 n = range(100)\r
161 r = range(25)\r
162\r
163 for i in xrange(self.rounds):\r
164 for j in r:\r
165 pass\r
166\r
167class SmallLists(Test):\r
168\r
169 version = 2.0\r
170 operations = 5*(1+ 6 + 6 + 3 + 1)\r
171 rounds = 80000\r
172\r
173 def test(self):\r
174\r
175 for i in xrange(self.rounds):\r
176\r
177 l = []\r
178\r
179 append = l.append\r
180 append(2)\r
181 append(3)\r
182 append(4)\r
183 append(2)\r
184 append(3)\r
185 append(4)\r
186\r
187 l[0] = 3\r
188 l[1] = 4\r
189 l[2] = 5\r
190 l[3] = 3\r
191 l[4] = 4\r
192 l[5] = 5\r
193\r
194 l[:3] = [1,2,3]\r
195 m = l[:-1]\r
196 m = l[1:]\r
197\r
198 l[-1:] = [4,5,6]\r
199\r
200 l = []\r
201\r
202 append = l.append\r
203 append(2)\r
204 append(3)\r
205 append(4)\r
206 append(2)\r
207 append(3)\r
208 append(4)\r
209\r
210 l[0] = 3\r
211 l[1] = 4\r
212 l[2] = 5\r
213 l[3] = 3\r
214 l[4] = 4\r
215 l[5] = 5\r
216\r
217 l[:3] = [1,2,3]\r
218 m = l[:-1]\r
219 m = l[1:]\r
220\r
221 l[-1:] = [4,5,6]\r
222\r
223 l = []\r
224\r
225 append = l.append\r
226 append(2)\r
227 append(3)\r
228 append(4)\r
229 append(2)\r
230 append(3)\r
231 append(4)\r
232\r
233 l[0] = 3\r
234 l[1] = 4\r
235 l[2] = 5\r
236 l[3] = 3\r
237 l[4] = 4\r
238 l[5] = 5\r
239\r
240 l[:3] = [1,2,3]\r
241 m = l[:-1]\r
242 m = l[1:]\r
243\r
244 l[-1:] = [4,5,6]\r
245\r
246 l = []\r
247\r
248 append = l.append\r
249 append(2)\r
250 append(3)\r
251 append(4)\r
252 append(2)\r
253 append(3)\r
254 append(4)\r
255\r
256 l[0] = 3\r
257 l[1] = 4\r
258 l[2] = 5\r
259 l[3] = 3\r
260 l[4] = 4\r
261 l[5] = 5\r
262\r
263 l[:3] = [1,2,3]\r
264 m = l[:-1]\r
265 m = l[1:]\r
266\r
267 l[-1:] = [4,5,6]\r
268\r
269 l = []\r
270\r
271 append = l.append\r
272 append(2)\r
273 append(3)\r
274 append(4)\r
275 append(2)\r
276 append(3)\r
277 append(4)\r
278\r
279 l[0] = 3\r
280 l[1] = 4\r
281 l[2] = 5\r
282 l[3] = 3\r
283 l[4] = 4\r
284 l[5] = 5\r
285\r
286 l[:3] = [1,2,3]\r
287 m = l[:-1]\r
288 m = l[1:]\r
289\r
290 l[-1:] = [4,5,6]\r
291\r
292 def calibrate(self):\r
293\r
294 for i in xrange(self.rounds):\r
295 pass\r
296\r
297class SimpleListComprehensions(Test):\r
298\r
299 version = 2.0\r
300 operations = 6\r
301 rounds = 20000\r
302\r
303 def test(self):\r
304\r
305 n = range(10) * 10\r
306\r
307 for i in xrange(self.rounds):\r
308 l = [x for x in n]\r
309 l = [x for x in n if x]\r
310 l = [x for x in n if not x]\r
311\r
312 l = [x for x in n]\r
313 l = [x for x in n if x]\r
314 l = [x for x in n if not x]\r
315\r
316 def calibrate(self):\r
317\r
318 n = range(10) * 10\r
319\r
320 for i in xrange(self.rounds):\r
321 pass\r
322\r
323class NestedListComprehensions(Test):\r
324\r
325 version = 2.0\r
326 operations = 6\r
327 rounds = 20000\r
328\r
329 def test(self):\r
330\r
331 m = range(10)\r
332 n = range(10)\r
333\r
334 for i in xrange(self.rounds):\r
335 l = [x for x in n for y in m]\r
336 l = [y for x in n for y in m]\r
337\r
338 l = [x for x in n for y in m if y]\r
339 l = [y for x in n for y in m if x]\r
340\r
341 l = [x for x in n for y in m if not y]\r
342 l = [y for x in n for y in m if not x]\r
343\r
344 def calibrate(self):\r
345\r
346 m = range(10)\r
347 n = range(10)\r
348\r
349 for i in xrange(self.rounds):\r
350 pass\r