comparison tests/_perf_lookups.py @ 494:60683361ebed

Test-script for checking the costs of different variable lookup methods Variant from https://stackoverflow.com/questions/2714573/instance-variables-vs-class-variables-in-python
author Franz Glasner <f.glasner@feldmann-mg.com>
date Fri, 17 Dec 2021 19:24:54 +0100
parents
children
comparison
equal deleted inserted replaced
493:6a0f761ff35b 494:60683361ebed
1 from __future__ import print_function
2 import timeit
3
4 setup='''
5 XGLOBAL= 5
6 class A:
7 xclass = 5
8 def __init__(self):
9 self.xinstance = 5
10 def f1(self):
11 xlocal = 5
12 x = self.xinstance
13 def f2(self):
14 xlocal = 5
15 x = A.xclass
16 def f3(self):
17 xlocal = 5
18 x = XGLOBAL
19 def f4(self):
20 xlocal = 5
21 x = xlocal
22 def f5(self):
23 xlocal = 5
24 x = self.xclass
25 a = A()
26 '''
27 num = 300000000
28 num = 90000000
29 print('access via instance variable: %.3f' % timeit.timeit('a.f1()', setup=setup, number=num) )
30 print('access via class variable (via classname): %.3f' % timeit.timeit('a.f2()', setup=setup, number=num) )
31 print('access via class variable (via self): %.3f' % timeit.timeit('a.f5()', setup=setup, number=num) )
32 print('access via module variable: %.3f' % timeit.timeit('a.f3()', setup=setup, number=num) )
33 print('access via local variable: %.3f' % timeit.timeit('a.f4()', setup=setup, number=num) )