ref: ca9d65e40b3f78d2580fff9ff1844bad1be08673
dir: /sys/src/cmd/python/Tools/pybench/Lookups.py/
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