• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1from pybench import Test
2
3class SpecialClassAttribute(Test):
4
5    version = 2.0
6    operations = 5*(12 + 12)
7    rounds = 100000
8
9    def test(self):
10
11        class c:
12            pass
13
14        for i in xrange(self.rounds):
15
16            c.__a = 2
17            c.__b = 3
18            c.__c = 4
19
20            c.__a = 2
21            c.__b = 3
22            c.__c = 4
23
24            c.__a = 2
25            c.__b = 3
26            c.__c = 4
27
28            c.__a = 2
29            c.__b = 3
30            c.__c = 4
31
32            x = c.__a
33            x = c.__b
34            x = c.__c
35
36            x = c.__a
37            x = c.__b
38            x = c.__c
39
40            x = c.__a
41            x = c.__b
42            x = c.__c
43
44            x = c.__a
45            x = c.__b
46            x = c.__c
47
48            c.__a = 2
49            c.__b = 3
50            c.__c = 4
51
52            c.__a = 2
53            c.__b = 3
54            c.__c = 4
55
56            c.__a = 2
57            c.__b = 3
58            c.__c = 4
59
60            c.__a = 2
61            c.__b = 3
62            c.__c = 4
63
64            x = c.__a
65            x = c.__b
66            x = c.__c
67
68            x = c.__a
69            x = c.__b
70            x = c.__c
71
72            x = c.__a
73            x = c.__b
74            x = c.__c
75
76            x = c.__a
77            x = c.__b
78            x = c.__c
79
80            c.__a = 2
81            c.__b = 3
82            c.__c = 4
83
84            c.__a = 2
85            c.__b = 3
86            c.__c = 4
87
88            c.__a = 2
89            c.__b = 3
90            c.__c = 4
91
92            c.__a = 2
93            c.__b = 3
94            c.__c = 4
95
96            x = c.__a
97            x = c.__b
98            x = c.__c
99
100            x = c.__a
101            x = c.__b
102            x = c.__c
103
104            x = c.__a
105            x = c.__b
106            x = c.__c
107
108            x = c.__a
109            x = c.__b
110            x = c.__c
111
112            c.__a = 2
113            c.__b = 3
114            c.__c = 4
115
116            c.__a = 2
117            c.__b = 3
118            c.__c = 4
119
120            c.__a = 2
121            c.__b = 3
122            c.__c = 4
123
124            c.__a = 2
125            c.__b = 3
126            c.__c = 4
127
128            x = c.__a
129            x = c.__b
130            x = c.__c
131
132            x = c.__a
133            x = c.__b
134            x = c.__c
135
136            x = c.__a
137            x = c.__b
138            x = c.__c
139
140            x = c.__a
141            x = c.__b
142            x = c.__c
143
144            c.__a = 2
145            c.__b = 3
146            c.__c = 4
147
148            c.__a = 2
149            c.__b = 3
150            c.__c = 4
151
152            c.__a = 2
153            c.__b = 3
154            c.__c = 4
155
156            c.__a = 2
157            c.__b = 3
158            c.__c = 4
159
160            x = c.__a
161            x = c.__b
162            x = c.__c
163
164            x = c.__a
165            x = c.__b
166            x = c.__c
167
168            x = c.__a
169            x = c.__b
170            x = c.__c
171
172            x = c.__a
173            x = c.__b
174            x = c.__c
175
176    def calibrate(self):
177
178        class c:
179            pass
180
181        for i in xrange(self.rounds):
182            pass
183
184class NormalClassAttribute(Test):
185
186    version = 2.0
187    operations = 5*(12 + 12)
188    rounds = 100000
189
190    def test(self):
191
192        class c:
193            pass
194
195        for i in xrange(self.rounds):
196
197            c.a = 2
198            c.b = 3
199            c.c = 4
200
201            c.a = 2
202            c.b = 3
203            c.c = 4
204
205            c.a = 2
206            c.b = 3
207            c.c = 4
208
209            c.a = 2
210            c.b = 3
211            c.c = 4
212
213
214            x = c.a
215            x = c.b
216            x = c.c
217
218            x = c.a
219            x = c.b
220            x = c.c
221
222            x = c.a
223            x = c.b
224            x = c.c
225
226            x = c.a
227            x = c.b
228            x = c.c
229
230            c.a = 2
231            c.b = 3
232            c.c = 4
233
234            c.a = 2
235            c.b = 3
236            c.c = 4
237
238            c.a = 2
239            c.b = 3
240            c.c = 4
241
242            c.a = 2
243            c.b = 3
244            c.c = 4
245
246
247            x = c.a
248            x = c.b
249            x = c.c
250
251            x = c.a
252            x = c.b
253            x = c.c
254
255            x = c.a
256            x = c.b
257            x = c.c
258
259            x = c.a
260            x = c.b
261            x = c.c
262
263            c.a = 2
264            c.b = 3
265            c.c = 4
266
267            c.a = 2
268            c.b = 3
269            c.c = 4
270
271            c.a = 2
272            c.b = 3
273            c.c = 4
274
275            c.a = 2
276            c.b = 3
277            c.c = 4
278
279
280            x = c.a
281            x = c.b
282            x = c.c
283
284            x = c.a
285            x = c.b
286            x = c.c
287
288            x = c.a
289            x = c.b
290            x = c.c
291
292            x = c.a
293            x = c.b
294            x = c.c
295
296            c.a = 2
297            c.b = 3
298            c.c = 4
299
300            c.a = 2
301            c.b = 3
302            c.c = 4
303
304            c.a = 2
305            c.b = 3
306            c.c = 4
307
308            c.a = 2
309            c.b = 3
310            c.c = 4
311
312
313            x = c.a
314            x = c.b
315            x = c.c
316
317            x = c.a
318            x = c.b
319            x = c.c
320
321            x = c.a
322            x = c.b
323            x = c.c
324
325            x = c.a
326            x = c.b
327            x = c.c
328
329            c.a = 2
330            c.b = 3
331            c.c = 4
332
333            c.a = 2
334            c.b = 3
335            c.c = 4
336
337            c.a = 2
338            c.b = 3
339            c.c = 4
340
341            c.a = 2
342            c.b = 3
343            c.c = 4
344
345
346            x = c.a
347            x = c.b
348            x = c.c
349
350            x = c.a
351            x = c.b
352            x = c.c
353
354            x = c.a
355            x = c.b
356            x = c.c
357
358            x = c.a
359            x = c.b
360            x = c.c
361
362    def calibrate(self):
363
364        class c:
365            pass
366
367        for i in xrange(self.rounds):
368            pass
369
370class SpecialInstanceAttribute(Test):
371
372    version = 2.0
373    operations = 5*(12 + 12)
374    rounds = 100000
375
376    def test(self):
377
378        class c:
379            pass
380        o = c()
381
382        for i in xrange(self.rounds):
383
384            o.__a__ = 2
385            o.__b__ = 3
386            o.__c__ = 4
387
388            o.__a__ = 2
389            o.__b__ = 3
390            o.__c__ = 4
391
392            o.__a__ = 2
393            o.__b__ = 3
394            o.__c__ = 4
395
396            o.__a__ = 2
397            o.__b__ = 3
398            o.__c__ = 4
399
400
401            x = o.__a__
402            x = o.__b__
403            x = o.__c__
404
405            x = o.__a__
406            x = o.__b__
407            x = o.__c__
408
409            x = o.__a__
410            x = o.__b__
411            x = o.__c__
412
413            x = o.__a__
414            x = o.__b__
415            x = o.__c__
416
417            o.__a__ = 2
418            o.__b__ = 3
419            o.__c__ = 4
420
421            o.__a__ = 2
422            o.__b__ = 3
423            o.__c__ = 4
424
425            o.__a__ = 2
426            o.__b__ = 3
427            o.__c__ = 4
428
429            o.__a__ = 2
430            o.__b__ = 3
431            o.__c__ = 4
432
433
434            x = o.__a__
435            x = o.__b__
436            x = o.__c__
437
438            x = o.__a__
439            x = o.__b__
440            x = o.__c__
441
442            x = o.__a__
443            x = o.__b__
444            x = o.__c__
445
446            x = o.__a__
447            x = o.__b__
448            x = o.__c__
449
450            o.__a__ = 2
451            o.__b__ = 3
452            o.__c__ = 4
453
454            o.__a__ = 2
455            o.__b__ = 3
456            o.__c__ = 4
457
458            o.__a__ = 2
459            o.__b__ = 3
460            o.__c__ = 4
461
462            o.__a__ = 2
463            o.__b__ = 3
464            o.__c__ = 4
465
466
467            x = o.__a__
468            x = o.__b__
469            x = o.__c__
470
471            x = o.__a__
472            x = o.__b__
473            x = o.__c__
474
475            x = o.__a__
476            x = o.__b__
477            x = o.__c__
478
479            x = o.__a__
480            x = o.__b__
481            x = o.__c__
482
483            o.__a__ = 2
484            o.__b__ = 3
485            o.__c__ = 4
486
487            o.__a__ = 2
488            o.__b__ = 3
489            o.__c__ = 4
490
491            o.__a__ = 2
492            o.__b__ = 3
493            o.__c__ = 4
494
495            o.__a__ = 2
496            o.__b__ = 3
497            o.__c__ = 4
498
499
500            x = o.__a__
501            x = o.__b__
502            x = o.__c__
503
504            x = o.__a__
505            x = o.__b__
506            x = o.__c__
507
508            x = o.__a__
509            x = o.__b__
510            x = o.__c__
511
512            x = o.__a__
513            x = o.__b__
514            x = o.__c__
515
516            o.__a__ = 2
517            o.__b__ = 3
518            o.__c__ = 4
519
520            o.__a__ = 2
521            o.__b__ = 3
522            o.__c__ = 4
523
524            o.__a__ = 2
525            o.__b__ = 3
526            o.__c__ = 4
527
528            o.__a__ = 2
529            o.__b__ = 3
530            o.__c__ = 4
531
532
533            x = o.__a__
534            x = o.__b__
535            x = o.__c__
536
537            x = o.__a__
538            x = o.__b__
539            x = o.__c__
540
541            x = o.__a__
542            x = o.__b__
543            x = o.__c__
544
545            x = o.__a__
546            x = o.__b__
547            x = o.__c__
548
549    def calibrate(self):
550
551        class c:
552            pass
553        o = c()
554
555        for i in xrange(self.rounds):
556            pass
557
558class NormalInstanceAttribute(Test):
559
560    version = 2.0
561    operations = 5*(12 + 12)
562    rounds = 100000
563
564    def test(self):
565
566        class c:
567            pass
568        o = c()
569
570        for i in xrange(self.rounds):
571
572            o.a = 2
573            o.b = 3
574            o.c = 4
575
576            o.a = 2
577            o.b = 3
578            o.c = 4
579
580            o.a = 2
581            o.b = 3
582            o.c = 4
583
584            o.a = 2
585            o.b = 3
586            o.c = 4
587
588
589            x = o.a
590            x = o.b
591            x = o.c
592
593            x = o.a
594            x = o.b
595            x = o.c
596
597            x = o.a
598            x = o.b
599            x = o.c
600
601            x = o.a
602            x = o.b
603            x = o.c
604
605            o.a = 2
606            o.b = 3
607            o.c = 4
608
609            o.a = 2
610            o.b = 3
611            o.c = 4
612
613            o.a = 2
614            o.b = 3
615            o.c = 4
616
617            o.a = 2
618            o.b = 3
619            o.c = 4
620
621
622            x = o.a
623            x = o.b
624            x = o.c
625
626            x = o.a
627            x = o.b
628            x = o.c
629
630            x = o.a
631            x = o.b
632            x = o.c
633
634            x = o.a
635            x = o.b
636            x = o.c
637
638            o.a = 2
639            o.b = 3
640            o.c = 4
641
642            o.a = 2
643            o.b = 3
644            o.c = 4
645
646            o.a = 2
647            o.b = 3
648            o.c = 4
649
650            o.a = 2
651            o.b = 3
652            o.c = 4
653
654
655            x = o.a
656            x = o.b
657            x = o.c
658
659            x = o.a
660            x = o.b
661            x = o.c
662
663            x = o.a
664            x = o.b
665            x = o.c
666
667            x = o.a
668            x = o.b
669            x = o.c
670
671            o.a = 2
672            o.b = 3
673            o.c = 4
674
675            o.a = 2
676            o.b = 3
677            o.c = 4
678
679            o.a = 2
680            o.b = 3
681            o.c = 4
682
683            o.a = 2
684            o.b = 3
685            o.c = 4
686
687
688            x = o.a
689            x = o.b
690            x = o.c
691
692            x = o.a
693            x = o.b
694            x = o.c
695
696            x = o.a
697            x = o.b
698            x = o.c
699
700            x = o.a
701            x = o.b
702            x = o.c
703
704            o.a = 2
705            o.b = 3
706            o.c = 4
707
708            o.a = 2
709            o.b = 3
710            o.c = 4
711
712            o.a = 2
713            o.b = 3
714            o.c = 4
715
716            o.a = 2
717            o.b = 3
718            o.c = 4
719
720
721            x = o.a
722            x = o.b
723            x = o.c
724
725            x = o.a
726            x = o.b
727            x = o.c
728
729            x = o.a
730            x = o.b
731            x = o.c
732
733            x = o.a
734            x = o.b
735            x = o.c
736
737    def calibrate(self):
738
739        class c:
740            pass
741        o = c()
742
743        for i in xrange(self.rounds):
744            pass
745
746class BuiltinMethodLookup(Test):
747
748    version = 2.0
749    operations = 5*(3*5 + 3*5)
750    rounds = 70000
751
752    def test(self):
753
754        l = []
755        d = {}
756
757        for i in xrange(self.rounds):
758
759            l.append
760            l.append
761            l.append
762            l.append
763            l.append
764
765            l.insert
766            l.insert
767            l.insert
768            l.insert
769            l.insert
770
771            l.sort
772            l.sort
773            l.sort
774            l.sort
775            l.sort
776
777            d.has_key
778            d.has_key
779            d.has_key
780            d.has_key
781            d.has_key
782
783            d.items
784            d.items
785            d.items
786            d.items
787            d.items
788
789            d.get
790            d.get
791            d.get
792            d.get
793            d.get
794
795            l.append
796            l.append
797            l.append
798            l.append
799            l.append
800
801            l.insert
802            l.insert
803            l.insert
804            l.insert
805            l.insert
806
807            l.sort
808            l.sort
809            l.sort
810            l.sort
811            l.sort
812
813            d.has_key
814            d.has_key
815            d.has_key
816            d.has_key
817            d.has_key
818
819            d.items
820            d.items
821            d.items
822            d.items
823            d.items
824
825            d.get
826            d.get
827            d.get
828            d.get
829            d.get
830
831            l.append
832            l.append
833            l.append
834            l.append
835            l.append
836
837            l.insert
838            l.insert
839            l.insert
840            l.insert
841            l.insert
842
843            l.sort
844            l.sort
845            l.sort
846            l.sort
847            l.sort
848
849            d.has_key
850            d.has_key
851            d.has_key
852            d.has_key
853            d.has_key
854
855            d.items
856            d.items
857            d.items
858            d.items
859            d.items
860
861            d.get
862            d.get
863            d.get
864            d.get
865            d.get
866
867            l.append
868            l.append
869            l.append
870            l.append
871            l.append
872
873            l.insert
874            l.insert
875            l.insert
876            l.insert
877            l.insert
878
879            l.sort
880            l.sort
881            l.sort
882            l.sort
883            l.sort
884
885            d.has_key
886            d.has_key
887            d.has_key
888            d.has_key
889            d.has_key
890
891            d.items
892            d.items
893            d.items
894            d.items
895            d.items
896
897            d.get
898            d.get
899            d.get
900            d.get
901            d.get
902
903            l.append
904            l.append
905            l.append
906            l.append
907            l.append
908
909            l.insert
910            l.insert
911            l.insert
912            l.insert
913            l.insert
914
915            l.sort
916            l.sort
917            l.sort
918            l.sort
919            l.sort
920
921            d.has_key
922            d.has_key
923            d.has_key
924            d.has_key
925            d.has_key
926
927            d.items
928            d.items
929            d.items
930            d.items
931            d.items
932
933            d.get
934            d.get
935            d.get
936            d.get
937            d.get
938
939    def calibrate(self):
940
941        l = []
942        d = {}
943
944        for i in xrange(self.rounds):
945            pass
946