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