| from pybench import Test | 
 |  | 
 | class SpecialClassAttribute(Test): | 
 |  | 
 |     version = 2.0 | 
 |     operations = 5*(12 + 12) | 
 |     rounds = 100000 | 
 |  | 
 |     def test(self): | 
 |  | 
 |         class c: | 
 |             pass | 
 |  | 
 |         for i in xrange(self.rounds): | 
 |  | 
 |             c.__a = 2 | 
 |             c.__b = 3 | 
 |             c.__c = 4 | 
 |  | 
 |             c.__a = 2 | 
 |             c.__b = 3 | 
 |             c.__c = 4 | 
 |  | 
 |             c.__a = 2 | 
 |             c.__b = 3 | 
 |             c.__c = 4 | 
 |  | 
 |             c.__a = 2 | 
 |             c.__b = 3 | 
 |             c.__c = 4 | 
 |  | 
 |             x = c.__a | 
 |             x = c.__b | 
 |             x = c.__c | 
 |  | 
 |             x = c.__a | 
 |             x = c.__b | 
 |             x = c.__c | 
 |  | 
 |             x = c.__a | 
 |             x = c.__b | 
 |             x = c.__c | 
 |  | 
 |             x = c.__a | 
 |             x = c.__b | 
 |             x = c.__c | 
 |  | 
 |             c.__a = 2 | 
 |             c.__b = 3 | 
 |             c.__c = 4 | 
 |  | 
 |             c.__a = 2 | 
 |             c.__b = 3 | 
 |             c.__c = 4 | 
 |  | 
 |             c.__a = 2 | 
 |             c.__b = 3 | 
 |             c.__c = 4 | 
 |  | 
 |             c.__a = 2 | 
 |             c.__b = 3 | 
 |             c.__c = 4 | 
 |  | 
 |             x = c.__a | 
 |             x = c.__b | 
 |             x = c.__c | 
 |  | 
 |             x = c.__a | 
 |             x = c.__b | 
 |             x = c.__c | 
 |  | 
 |             x = c.__a | 
 |             x = c.__b | 
 |             x = c.__c | 
 |  | 
 |             x = c.__a | 
 |             x = c.__b | 
 |             x = c.__c | 
 |  | 
 |             c.__a = 2 | 
 |             c.__b = 3 | 
 |             c.__c = 4 | 
 |  | 
 |             c.__a = 2 | 
 |             c.__b = 3 | 
 |             c.__c = 4 | 
 |  | 
 |             c.__a = 2 | 
 |             c.__b = 3 | 
 |             c.__c = 4 | 
 |  | 
 |             c.__a = 2 | 
 |             c.__b = 3 | 
 |             c.__c = 4 | 
 |  | 
 |             x = c.__a | 
 |             x = c.__b | 
 |             x = c.__c | 
 |  | 
 |             x = c.__a | 
 |             x = c.__b | 
 |             x = c.__c | 
 |  | 
 |             x = c.__a | 
 |             x = c.__b | 
 |             x = c.__c | 
 |  | 
 |             x = c.__a | 
 |             x = c.__b | 
 |             x = c.__c | 
 |  | 
 |             c.__a = 2 | 
 |             c.__b = 3 | 
 |             c.__c = 4 | 
 |  | 
 |             c.__a = 2 | 
 |             c.__b = 3 | 
 |             c.__c = 4 | 
 |  | 
 |             c.__a = 2 | 
 |             c.__b = 3 | 
 |             c.__c = 4 | 
 |  | 
 |             c.__a = 2 | 
 |             c.__b = 3 | 
 |             c.__c = 4 | 
 |  | 
 |             x = c.__a | 
 |             x = c.__b | 
 |             x = c.__c | 
 |  | 
 |             x = c.__a | 
 |             x = c.__b | 
 |             x = c.__c | 
 |  | 
 |             x = c.__a | 
 |             x = c.__b | 
 |             x = c.__c | 
 |  | 
 |             x = c.__a | 
 |             x = c.__b | 
 |             x = c.__c | 
 |  | 
 |             c.__a = 2 | 
 |             c.__b = 3 | 
 |             c.__c = 4 | 
 |  | 
 |             c.__a = 2 | 
 |             c.__b = 3 | 
 |             c.__c = 4 | 
 |  | 
 |             c.__a = 2 | 
 |             c.__b = 3 | 
 |             c.__c = 4 | 
 |  | 
 |             c.__a = 2 | 
 |             c.__b = 3 | 
 |             c.__c = 4 | 
 |  | 
 |             x = c.__a | 
 |             x = c.__b | 
 |             x = c.__c | 
 |  | 
 |             x = c.__a | 
 |             x = c.__b | 
 |             x = c.__c | 
 |  | 
 |             x = c.__a | 
 |             x = c.__b | 
 |             x = c.__c | 
 |  | 
 |             x = c.__a | 
 |             x = c.__b | 
 |             x = c.__c | 
 |  | 
 |     def calibrate(self): | 
 |  | 
 |         class c: | 
 |             pass | 
 |  | 
 |         for i in xrange(self.rounds): | 
 |             pass | 
 |  | 
 | class NormalClassAttribute(Test): | 
 |  | 
 |     version = 2.0 | 
 |     operations = 5*(12 + 12) | 
 |     rounds = 100000 | 
 |  | 
 |     def test(self): | 
 |  | 
 |         class c: | 
 |             pass | 
 |  | 
 |         for i in xrange(self.rounds): | 
 |  | 
 |             c.a = 2 | 
 |             c.b = 3 | 
 |             c.c = 4 | 
 |  | 
 |             c.a = 2 | 
 |             c.b = 3 | 
 |             c.c = 4 | 
 |  | 
 |             c.a = 2 | 
 |             c.b = 3 | 
 |             c.c = 4 | 
 |  | 
 |             c.a = 2 | 
 |             c.b = 3 | 
 |             c.c = 4 | 
 |  | 
 |  | 
 |             x = c.a | 
 |             x = c.b | 
 |             x = c.c | 
 |  | 
 |             x = c.a | 
 |             x = c.b | 
 |             x = c.c | 
 |  | 
 |             x = c.a | 
 |             x = c.b | 
 |             x = c.c | 
 |  | 
 |             x = c.a | 
 |             x = c.b | 
 |             x = c.c | 
 |  | 
 |             c.a = 2 | 
 |             c.b = 3 | 
 |             c.c = 4 | 
 |  | 
 |             c.a = 2 | 
 |             c.b = 3 | 
 |             c.c = 4 | 
 |  | 
 |             c.a = 2 | 
 |             c.b = 3 | 
 |             c.c = 4 | 
 |  | 
 |             c.a = 2 | 
 |             c.b = 3 | 
 |             c.c = 4 | 
 |  | 
 |  | 
 |             x = c.a | 
 |             x = c.b | 
 |             x = c.c | 
 |  | 
 |             x = c.a | 
 |             x = c.b | 
 |             x = c.c | 
 |  | 
 |             x = c.a | 
 |             x = c.b | 
 |             x = c.c | 
 |  | 
 |             x = c.a | 
 |             x = c.b | 
 |             x = c.c | 
 |  | 
 |             c.a = 2 | 
 |             c.b = 3 | 
 |             c.c = 4 | 
 |  | 
 |             c.a = 2 | 
 |             c.b = 3 | 
 |             c.c = 4 | 
 |  | 
 |             c.a = 2 | 
 |             c.b = 3 | 
 |             c.c = 4 | 
 |  | 
 |             c.a = 2 | 
 |             c.b = 3 | 
 |             c.c = 4 | 
 |  | 
 |  | 
 |             x = c.a | 
 |             x = c.b | 
 |             x = c.c | 
 |  | 
 |             x = c.a | 
 |             x = c.b | 
 |             x = c.c | 
 |  | 
 |             x = c.a | 
 |             x = c.b | 
 |             x = c.c | 
 |  | 
 |             x = c.a | 
 |             x = c.b | 
 |             x = c.c | 
 |  | 
 |             c.a = 2 | 
 |             c.b = 3 | 
 |             c.c = 4 | 
 |  | 
 |             c.a = 2 | 
 |             c.b = 3 | 
 |             c.c = 4 | 
 |  | 
 |             c.a = 2 | 
 |             c.b = 3 | 
 |             c.c = 4 | 
 |  | 
 |             c.a = 2 | 
 |             c.b = 3 | 
 |             c.c = 4 | 
 |  | 
 |  | 
 |             x = c.a | 
 |             x = c.b | 
 |             x = c.c | 
 |  | 
 |             x = c.a | 
 |             x = c.b | 
 |             x = c.c | 
 |  | 
 |             x = c.a | 
 |             x = c.b | 
 |             x = c.c | 
 |  | 
 |             x = c.a | 
 |             x = c.b | 
 |             x = c.c | 
 |  | 
 |             c.a = 2 | 
 |             c.b = 3 | 
 |             c.c = 4 | 
 |  | 
 |             c.a = 2 | 
 |             c.b = 3 | 
 |             c.c = 4 | 
 |  | 
 |             c.a = 2 | 
 |             c.b = 3 | 
 |             c.c = 4 | 
 |  | 
 |             c.a = 2 | 
 |             c.b = 3 | 
 |             c.c = 4 | 
 |  | 
 |  | 
 |             x = c.a | 
 |             x = c.b | 
 |             x = c.c | 
 |  | 
 |             x = c.a | 
 |             x = c.b | 
 |             x = c.c | 
 |  | 
 |             x = c.a | 
 |             x = c.b | 
 |             x = c.c | 
 |  | 
 |             x = c.a | 
 |             x = c.b | 
 |             x = c.c | 
 |  | 
 |     def calibrate(self): | 
 |  | 
 |         class c: | 
 |             pass | 
 |  | 
 |         for i in xrange(self.rounds): | 
 |             pass | 
 |  | 
 | class SpecialInstanceAttribute(Test): | 
 |  | 
 |     version = 2.0 | 
 |     operations = 5*(12 + 12) | 
 |     rounds = 100000 | 
 |  | 
 |     def test(self): | 
 |  | 
 |         class c: | 
 |             pass | 
 |         o = c() | 
 |  | 
 |         for i in xrange(self.rounds): | 
 |  | 
 |             o.__a__ = 2 | 
 |             o.__b__ = 3 | 
 |             o.__c__ = 4 | 
 |  | 
 |             o.__a__ = 2 | 
 |             o.__b__ = 3 | 
 |             o.__c__ = 4 | 
 |  | 
 |             o.__a__ = 2 | 
 |             o.__b__ = 3 | 
 |             o.__c__ = 4 | 
 |  | 
 |             o.__a__ = 2 | 
 |             o.__b__ = 3 | 
 |             o.__c__ = 4 | 
 |  | 
 |  | 
 |             x = o.__a__ | 
 |             x = o.__b__ | 
 |             x = o.__c__ | 
 |  | 
 |             x = o.__a__ | 
 |             x = o.__b__ | 
 |             x = o.__c__ | 
 |  | 
 |             x = o.__a__ | 
 |             x = o.__b__ | 
 |             x = o.__c__ | 
 |  | 
 |             x = o.__a__ | 
 |             x = o.__b__ | 
 |             x = o.__c__ | 
 |  | 
 |             o.__a__ = 2 | 
 |             o.__b__ = 3 | 
 |             o.__c__ = 4 | 
 |  | 
 |             o.__a__ = 2 | 
 |             o.__b__ = 3 | 
 |             o.__c__ = 4 | 
 |  | 
 |             o.__a__ = 2 | 
 |             o.__b__ = 3 | 
 |             o.__c__ = 4 | 
 |  | 
 |             o.__a__ = 2 | 
 |             o.__b__ = 3 | 
 |             o.__c__ = 4 | 
 |  | 
 |  | 
 |             x = o.__a__ | 
 |             x = o.__b__ | 
 |             x = o.__c__ | 
 |  | 
 |             x = o.__a__ | 
 |             x = o.__b__ | 
 |             x = o.__c__ | 
 |  | 
 |             x = o.__a__ | 
 |             x = o.__b__ | 
 |             x = o.__c__ | 
 |  | 
 |             x = o.__a__ | 
 |             x = o.__b__ | 
 |             x = o.__c__ | 
 |  | 
 |             o.__a__ = 2 | 
 |             o.__b__ = 3 | 
 |             o.__c__ = 4 | 
 |  | 
 |             o.__a__ = 2 | 
 |             o.__b__ = 3 | 
 |             o.__c__ = 4 | 
 |  | 
 |             o.__a__ = 2 | 
 |             o.__b__ = 3 | 
 |             o.__c__ = 4 | 
 |  | 
 |             o.__a__ = 2 | 
 |             o.__b__ = 3 | 
 |             o.__c__ = 4 | 
 |  | 
 |  | 
 |             x = o.__a__ | 
 |             x = o.__b__ | 
 |             x = o.__c__ | 
 |  | 
 |             x = o.__a__ | 
 |             x = o.__b__ | 
 |             x = o.__c__ | 
 |  | 
 |             x = o.__a__ | 
 |             x = o.__b__ | 
 |             x = o.__c__ | 
 |  | 
 |             x = o.__a__ | 
 |             x = o.__b__ | 
 |             x = o.__c__ | 
 |  | 
 |             o.__a__ = 2 | 
 |             o.__b__ = 3 | 
 |             o.__c__ = 4 | 
 |  | 
 |             o.__a__ = 2 | 
 |             o.__b__ = 3 | 
 |             o.__c__ = 4 | 
 |  | 
 |             o.__a__ = 2 | 
 |             o.__b__ = 3 | 
 |             o.__c__ = 4 | 
 |  | 
 |             o.__a__ = 2 | 
 |             o.__b__ = 3 | 
 |             o.__c__ = 4 | 
 |  | 
 |  | 
 |             x = o.__a__ | 
 |             x = o.__b__ | 
 |             x = o.__c__ | 
 |  | 
 |             x = o.__a__ | 
 |             x = o.__b__ | 
 |             x = o.__c__ | 
 |  | 
 |             x = o.__a__ | 
 |             x = o.__b__ | 
 |             x = o.__c__ | 
 |  | 
 |             x = o.__a__ | 
 |             x = o.__b__ | 
 |             x = o.__c__ | 
 |  | 
 |             o.__a__ = 2 | 
 |             o.__b__ = 3 | 
 |             o.__c__ = 4 | 
 |  | 
 |             o.__a__ = 2 | 
 |             o.__b__ = 3 | 
 |             o.__c__ = 4 | 
 |  | 
 |             o.__a__ = 2 | 
 |             o.__b__ = 3 | 
 |             o.__c__ = 4 | 
 |  | 
 |             o.__a__ = 2 | 
 |             o.__b__ = 3 | 
 |             o.__c__ = 4 | 
 |  | 
 |  | 
 |             x = o.__a__ | 
 |             x = o.__b__ | 
 |             x = o.__c__ | 
 |  | 
 |             x = o.__a__ | 
 |             x = o.__b__ | 
 |             x = o.__c__ | 
 |  | 
 |             x = o.__a__ | 
 |             x = o.__b__ | 
 |             x = o.__c__ | 
 |  | 
 |             x = o.__a__ | 
 |             x = o.__b__ | 
 |             x = o.__c__ | 
 |  | 
 |     def calibrate(self): | 
 |  | 
 |         class c: | 
 |             pass | 
 |         o = c() | 
 |  | 
 |         for i in xrange(self.rounds): | 
 |             pass | 
 |  | 
 | class NormalInstanceAttribute(Test): | 
 |  | 
 |     version = 2.0 | 
 |     operations = 5*(12 + 12) | 
 |     rounds = 100000 | 
 |  | 
 |     def test(self): | 
 |  | 
 |         class c: | 
 |             pass | 
 |         o = c() | 
 |  | 
 |         for i in xrange(self.rounds): | 
 |  | 
 |             o.a = 2 | 
 |             o.b = 3 | 
 |             o.c = 4 | 
 |  | 
 |             o.a = 2 | 
 |             o.b = 3 | 
 |             o.c = 4 | 
 |  | 
 |             o.a = 2 | 
 |             o.b = 3 | 
 |             o.c = 4 | 
 |  | 
 |             o.a = 2 | 
 |             o.b = 3 | 
 |             o.c = 4 | 
 |  | 
 |  | 
 |             x = o.a | 
 |             x = o.b | 
 |             x = o.c | 
 |  | 
 |             x = o.a | 
 |             x = o.b | 
 |             x = o.c | 
 |  | 
 |             x = o.a | 
 |             x = o.b | 
 |             x = o.c | 
 |  | 
 |             x = o.a | 
 |             x = o.b | 
 |             x = o.c | 
 |  | 
 |             o.a = 2 | 
 |             o.b = 3 | 
 |             o.c = 4 | 
 |  | 
 |             o.a = 2 | 
 |             o.b = 3 | 
 |             o.c = 4 | 
 |  | 
 |             o.a = 2 | 
 |             o.b = 3 | 
 |             o.c = 4 | 
 |  | 
 |             o.a = 2 | 
 |             o.b = 3 | 
 |             o.c = 4 | 
 |  | 
 |  | 
 |             x = o.a | 
 |             x = o.b | 
 |             x = o.c | 
 |  | 
 |             x = o.a | 
 |             x = o.b | 
 |             x = o.c | 
 |  | 
 |             x = o.a | 
 |             x = o.b | 
 |             x = o.c | 
 |  | 
 |             x = o.a | 
 |             x = o.b | 
 |             x = o.c | 
 |  | 
 |             o.a = 2 | 
 |             o.b = 3 | 
 |             o.c = 4 | 
 |  | 
 |             o.a = 2 | 
 |             o.b = 3 | 
 |             o.c = 4 | 
 |  | 
 |             o.a = 2 | 
 |             o.b = 3 | 
 |             o.c = 4 | 
 |  | 
 |             o.a = 2 | 
 |             o.b = 3 | 
 |             o.c = 4 | 
 |  | 
 |  | 
 |             x = o.a | 
 |             x = o.b | 
 |             x = o.c | 
 |  | 
 |             x = o.a | 
 |             x = o.b | 
 |             x = o.c | 
 |  | 
 |             x = o.a | 
 |             x = o.b | 
 |             x = o.c | 
 |  | 
 |             x = o.a | 
 |             x = o.b | 
 |             x = o.c | 
 |  | 
 |             o.a = 2 | 
 |             o.b = 3 | 
 |             o.c = 4 | 
 |  | 
 |             o.a = 2 | 
 |             o.b = 3 | 
 |             o.c = 4 | 
 |  | 
 |             o.a = 2 | 
 |             o.b = 3 | 
 |             o.c = 4 | 
 |  | 
 |             o.a = 2 | 
 |             o.b = 3 | 
 |             o.c = 4 | 
 |  | 
 |  | 
 |             x = o.a | 
 |             x = o.b | 
 |             x = o.c | 
 |  | 
 |             x = o.a | 
 |             x = o.b | 
 |             x = o.c | 
 |  | 
 |             x = o.a | 
 |             x = o.b | 
 |             x = o.c | 
 |  | 
 |             x = o.a | 
 |             x = o.b | 
 |             x = o.c | 
 |  | 
 |             o.a = 2 | 
 |             o.b = 3 | 
 |             o.c = 4 | 
 |  | 
 |             o.a = 2 | 
 |             o.b = 3 | 
 |             o.c = 4 | 
 |  | 
 |             o.a = 2 | 
 |             o.b = 3 | 
 |             o.c = 4 | 
 |  | 
 |             o.a = 2 | 
 |             o.b = 3 | 
 |             o.c = 4 | 
 |  | 
 |  | 
 |             x = o.a | 
 |             x = o.b | 
 |             x = o.c | 
 |  | 
 |             x = o.a | 
 |             x = o.b | 
 |             x = o.c | 
 |  | 
 |             x = o.a | 
 |             x = o.b | 
 |             x = o.c | 
 |  | 
 |             x = o.a | 
 |             x = o.b | 
 |             x = o.c | 
 |  | 
 |     def calibrate(self): | 
 |  | 
 |         class c: | 
 |             pass | 
 |         o = c() | 
 |  | 
 |         for i in xrange(self.rounds): | 
 |             pass | 
 |  | 
 | class BuiltinMethodLookup(Test): | 
 |  | 
 |     version = 2.0 | 
 |     operations = 5*(3*5 + 3*5) | 
 |     rounds = 70000 | 
 |  | 
 |     def test(self): | 
 |  | 
 |         l = [] | 
 |         d = {} | 
 |  | 
 |         for i in xrange(self.rounds): | 
 |  | 
 |             l.append | 
 |             l.append | 
 |             l.append | 
 |             l.append | 
 |             l.append | 
 |  | 
 |             l.insert | 
 |             l.insert | 
 |             l.insert | 
 |             l.insert | 
 |             l.insert | 
 |  | 
 |             l.sort | 
 |             l.sort | 
 |             l.sort | 
 |             l.sort | 
 |             l.sort | 
 |  | 
 |             d.has_key | 
 |             d.has_key | 
 |             d.has_key | 
 |             d.has_key | 
 |             d.has_key | 
 |  | 
 |             d.items | 
 |             d.items | 
 |             d.items | 
 |             d.items | 
 |             d.items | 
 |  | 
 |             d.get | 
 |             d.get | 
 |             d.get | 
 |             d.get | 
 |             d.get | 
 |  | 
 |             l.append | 
 |             l.append | 
 |             l.append | 
 |             l.append | 
 |             l.append | 
 |  | 
 |             l.insert | 
 |             l.insert | 
 |             l.insert | 
 |             l.insert | 
 |             l.insert | 
 |  | 
 |             l.sort | 
 |             l.sort | 
 |             l.sort | 
 |             l.sort | 
 |             l.sort | 
 |  | 
 |             d.has_key | 
 |             d.has_key | 
 |             d.has_key | 
 |             d.has_key | 
 |             d.has_key | 
 |  | 
 |             d.items | 
 |             d.items | 
 |             d.items | 
 |             d.items | 
 |             d.items | 
 |  | 
 |             d.get | 
 |             d.get | 
 |             d.get | 
 |             d.get | 
 |             d.get | 
 |  | 
 |             l.append | 
 |             l.append | 
 |             l.append | 
 |             l.append | 
 |             l.append | 
 |  | 
 |             l.insert | 
 |             l.insert | 
 |             l.insert | 
 |             l.insert | 
 |             l.insert | 
 |  | 
 |             l.sort | 
 |             l.sort | 
 |             l.sort | 
 |             l.sort | 
 |             l.sort | 
 |  | 
 |             d.has_key | 
 |             d.has_key | 
 |             d.has_key | 
 |             d.has_key | 
 |             d.has_key | 
 |  | 
 |             d.items | 
 |             d.items | 
 |             d.items | 
 |             d.items | 
 |             d.items | 
 |  | 
 |             d.get | 
 |             d.get | 
 |             d.get | 
 |             d.get | 
 |             d.get | 
 |  | 
 |             l.append | 
 |             l.append | 
 |             l.append | 
 |             l.append | 
 |             l.append | 
 |  | 
 |             l.insert | 
 |             l.insert | 
 |             l.insert | 
 |             l.insert | 
 |             l.insert | 
 |  | 
 |             l.sort | 
 |             l.sort | 
 |             l.sort | 
 |             l.sort | 
 |             l.sort | 
 |  | 
 |             d.has_key | 
 |             d.has_key | 
 |             d.has_key | 
 |             d.has_key | 
 |             d.has_key | 
 |  | 
 |             d.items | 
 |             d.items | 
 |             d.items | 
 |             d.items | 
 |             d.items | 
 |  | 
 |             d.get | 
 |             d.get | 
 |             d.get | 
 |             d.get | 
 |             d.get | 
 |  | 
 |             l.append | 
 |             l.append | 
 |             l.append | 
 |             l.append | 
 |             l.append | 
 |  | 
 |             l.insert | 
 |             l.insert | 
 |             l.insert | 
 |             l.insert | 
 |             l.insert | 
 |  | 
 |             l.sort | 
 |             l.sort | 
 |             l.sort | 
 |             l.sort | 
 |             l.sort | 
 |  | 
 |             d.has_key | 
 |             d.has_key | 
 |             d.has_key | 
 |             d.has_key | 
 |             d.has_key | 
 |  | 
 |             d.items | 
 |             d.items | 
 |             d.items | 
 |             d.items | 
 |             d.items | 
 |  | 
 |             d.get | 
 |             d.get | 
 |             d.get | 
 |             d.get | 
 |             d.get | 
 |  | 
 |     def calibrate(self): | 
 |  | 
 |         l = [] | 
 |         d = {} | 
 |  | 
 |         for i in xrange(self.rounds): | 
 |             pass |