AppPkg/Applications/Python: Add Python 2.7.2 sources since the release of Python 2.7.3 made them unavailable from the python.org web site.
These files are a subset of the python-2.7.2.tgz distribution from python.org. Changed files from PyMod-2.7.2 have been copied into the corresponding directories of this tree, replacing the original files in the distribution. Signed-off-by: daryl.mcdaniel@intel.com git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13197 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
560
AppPkg/Applications/Python/Python-2.7.2/Tools/pybench/Calls.py
Normal file
560
AppPkg/Applications/Python/Python-2.7.2/Tools/pybench/Calls.py
Normal file
@ -0,0 +1,560 @@
|
||||
from pybench import Test
|
||||
|
||||
class PythonFunctionCalls(Test):
|
||||
|
||||
version = 2.0
|
||||
operations = 5*(1+4+4+2)
|
||||
rounds = 60000
|
||||
|
||||
def test(self):
|
||||
|
||||
global f,f1,g,h
|
||||
|
||||
# define functions
|
||||
def f():
|
||||
pass
|
||||
|
||||
def f1(x):
|
||||
pass
|
||||
|
||||
def g(a,b,c):
|
||||
return a,b,c
|
||||
|
||||
def h(a,b,c,d=1,e=2,f=3):
|
||||
return d,e,f
|
||||
|
||||
# do calls
|
||||
for i in xrange(self.rounds):
|
||||
|
||||
f()
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
g(i,i,i)
|
||||
g(i,i,i)
|
||||
g(i,i,i)
|
||||
g(i,i,i)
|
||||
h(i,i,3,i,i)
|
||||
h(i,i,i,2,i,3)
|
||||
|
||||
f()
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
g(i,i,i)
|
||||
g(i,i,i)
|
||||
g(i,i,i)
|
||||
g(i,i,i)
|
||||
h(i,i,3,i,i)
|
||||
h(i,i,i,2,i,3)
|
||||
|
||||
f()
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
g(i,i,i)
|
||||
g(i,i,i)
|
||||
g(i,i,i)
|
||||
g(i,i,i)
|
||||
h(i,i,3,i,i)
|
||||
h(i,i,i,2,i,3)
|
||||
|
||||
f()
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
g(i,i,i)
|
||||
g(i,i,i)
|
||||
g(i,i,i)
|
||||
g(i,i,i)
|
||||
h(i,i,3,i,i)
|
||||
h(i,i,i,2,i,3)
|
||||
|
||||
f()
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
g(i,i,i)
|
||||
g(i,i,i)
|
||||
g(i,i,i)
|
||||
g(i,i,i)
|
||||
h(i,i,3,i,i)
|
||||
h(i,i,i,2,i,3)
|
||||
|
||||
def calibrate(self):
|
||||
|
||||
global f,f1,g,h
|
||||
|
||||
# define functions
|
||||
def f():
|
||||
pass
|
||||
|
||||
def f1(x):
|
||||
pass
|
||||
|
||||
def g(a,b,c):
|
||||
return a,b,c
|
||||
|
||||
def h(a,b,c,d=1,e=2,f=3):
|
||||
return d,e,f
|
||||
|
||||
# do calls
|
||||
for i in xrange(self.rounds):
|
||||
pass
|
||||
|
||||
###
|
||||
|
||||
class ComplexPythonFunctionCalls(Test):
|
||||
|
||||
version = 2.0
|
||||
operations = 4*5
|
||||
rounds = 100000
|
||||
|
||||
def test(self):
|
||||
|
||||
# define functions
|
||||
def f(a,b,c,d=1,e=2,f=3):
|
||||
return f
|
||||
|
||||
args = 1,2
|
||||
kwargs = dict(c=3,d=4,e=5)
|
||||
|
||||
# do calls
|
||||
for i in xrange(self.rounds):
|
||||
f(a=i,b=i,c=i)
|
||||
f(f=i,e=i,d=i,c=2,b=i,a=3)
|
||||
f(1,b=i,**kwargs)
|
||||
f(*args,**kwargs)
|
||||
|
||||
f(a=i,b=i,c=i)
|
||||
f(f=i,e=i,d=i,c=2,b=i,a=3)
|
||||
f(1,b=i,**kwargs)
|
||||
f(*args,**kwargs)
|
||||
|
||||
f(a=i,b=i,c=i)
|
||||
f(f=i,e=i,d=i,c=2,b=i,a=3)
|
||||
f(1,b=i,**kwargs)
|
||||
f(*args,**kwargs)
|
||||
|
||||
f(a=i,b=i,c=i)
|
||||
f(f=i,e=i,d=i,c=2,b=i,a=3)
|
||||
f(1,b=i,**kwargs)
|
||||
f(*args,**kwargs)
|
||||
|
||||
f(a=i,b=i,c=i)
|
||||
f(f=i,e=i,d=i,c=2,b=i,a=3)
|
||||
f(1,b=i,**kwargs)
|
||||
f(*args,**kwargs)
|
||||
|
||||
|
||||
def calibrate(self):
|
||||
|
||||
# define functions
|
||||
def f(a,b,c,d=1,e=2,f=3):
|
||||
return f
|
||||
|
||||
args = 1,2
|
||||
kwargs = dict(c=3,d=4,e=5)
|
||||
|
||||
# do calls
|
||||
for i in xrange(self.rounds):
|
||||
pass
|
||||
|
||||
###
|
||||
|
||||
class BuiltinFunctionCalls(Test):
|
||||
|
||||
version = 2.0
|
||||
operations = 5*(2+5+5+5)
|
||||
rounds = 60000
|
||||
|
||||
def test(self):
|
||||
|
||||
# localize functions
|
||||
f0 = globals
|
||||
f1 = hash
|
||||
f2 = cmp
|
||||
f3 = range
|
||||
|
||||
# do calls
|
||||
for i in xrange(self.rounds):
|
||||
|
||||
f0()
|
||||
f0()
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
f2(1,2)
|
||||
f2(1,2)
|
||||
f2(1,2)
|
||||
f2(1,2)
|
||||
f2(1,2)
|
||||
f3(1,3,2)
|
||||
f3(1,3,2)
|
||||
f3(1,3,2)
|
||||
f3(1,3,2)
|
||||
f3(1,3,2)
|
||||
|
||||
f0()
|
||||
f0()
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
f2(1,2)
|
||||
f2(1,2)
|
||||
f2(1,2)
|
||||
f2(1,2)
|
||||
f2(1,2)
|
||||
f3(1,3,2)
|
||||
f3(1,3,2)
|
||||
f3(1,3,2)
|
||||
f3(1,3,2)
|
||||
f3(1,3,2)
|
||||
|
||||
f0()
|
||||
f0()
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
f2(1,2)
|
||||
f2(1,2)
|
||||
f2(1,2)
|
||||
f2(1,2)
|
||||
f2(1,2)
|
||||
f3(1,3,2)
|
||||
f3(1,3,2)
|
||||
f3(1,3,2)
|
||||
f3(1,3,2)
|
||||
f3(1,3,2)
|
||||
|
||||
f0()
|
||||
f0()
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
f2(1,2)
|
||||
f2(1,2)
|
||||
f2(1,2)
|
||||
f2(1,2)
|
||||
f2(1,2)
|
||||
f3(1,3,2)
|
||||
f3(1,3,2)
|
||||
f3(1,3,2)
|
||||
f3(1,3,2)
|
||||
f3(1,3,2)
|
||||
|
||||
f0()
|
||||
f0()
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
f2(1,2)
|
||||
f2(1,2)
|
||||
f2(1,2)
|
||||
f2(1,2)
|
||||
f2(1,2)
|
||||
f3(1,3,2)
|
||||
f3(1,3,2)
|
||||
f3(1,3,2)
|
||||
f3(1,3,2)
|
||||
f3(1,3,2)
|
||||
|
||||
def calibrate(self):
|
||||
|
||||
# localize functions
|
||||
f0 = dir
|
||||
f1 = hash
|
||||
f2 = range
|
||||
f3 = range
|
||||
|
||||
# do calls
|
||||
for i in xrange(self.rounds):
|
||||
pass
|
||||
|
||||
###
|
||||
|
||||
class PythonMethodCalls(Test):
|
||||
|
||||
version = 2.0
|
||||
operations = 5*(6 + 5 + 4)
|
||||
rounds = 30000
|
||||
|
||||
def test(self):
|
||||
|
||||
class c:
|
||||
|
||||
x = 2
|
||||
s = 'string'
|
||||
|
||||
def f(self):
|
||||
|
||||
return self.x
|
||||
|
||||
def j(self,a,b):
|
||||
|
||||
self.y = a
|
||||
self.t = b
|
||||
return self.y
|
||||
|
||||
def k(self,a,b,c=3):
|
||||
|
||||
self.y = a
|
||||
self.s = b
|
||||
self.t = c
|
||||
|
||||
o = c()
|
||||
|
||||
for i in xrange(self.rounds):
|
||||
|
||||
o.f()
|
||||
o.f()
|
||||
o.f()
|
||||
o.f()
|
||||
o.f()
|
||||
o.f()
|
||||
o.j(i,i)
|
||||
o.j(i,i)
|
||||
o.j(i,2)
|
||||
o.j(i,2)
|
||||
o.j(2,2)
|
||||
o.k(i,i)
|
||||
o.k(i,2)
|
||||
o.k(i,2,3)
|
||||
o.k(i,i,c=4)
|
||||
|
||||
o.f()
|
||||
o.f()
|
||||
o.f()
|
||||
o.f()
|
||||
o.f()
|
||||
o.f()
|
||||
o.j(i,i)
|
||||
o.j(i,i)
|
||||
o.j(i,2)
|
||||
o.j(i,2)
|
||||
o.j(2,2)
|
||||
o.k(i,i)
|
||||
o.k(i,2)
|
||||
o.k(i,2,3)
|
||||
o.k(i,i,c=4)
|
||||
|
||||
o.f()
|
||||
o.f()
|
||||
o.f()
|
||||
o.f()
|
||||
o.f()
|
||||
o.f()
|
||||
o.j(i,i)
|
||||
o.j(i,i)
|
||||
o.j(i,2)
|
||||
o.j(i,2)
|
||||
o.j(2,2)
|
||||
o.k(i,i)
|
||||
o.k(i,2)
|
||||
o.k(i,2,3)
|
||||
o.k(i,i,c=4)
|
||||
|
||||
o.f()
|
||||
o.f()
|
||||
o.f()
|
||||
o.f()
|
||||
o.f()
|
||||
o.f()
|
||||
o.j(i,i)
|
||||
o.j(i,i)
|
||||
o.j(i,2)
|
||||
o.j(i,2)
|
||||
o.j(2,2)
|
||||
o.k(i,i)
|
||||
o.k(i,2)
|
||||
o.k(i,2,3)
|
||||
o.k(i,i,c=4)
|
||||
|
||||
o.f()
|
||||
o.f()
|
||||
o.f()
|
||||
o.f()
|
||||
o.f()
|
||||
o.f()
|
||||
o.j(i,i)
|
||||
o.j(i,i)
|
||||
o.j(i,2)
|
||||
o.j(i,2)
|
||||
o.j(2,2)
|
||||
o.k(i,i)
|
||||
o.k(i,2)
|
||||
o.k(i,2,3)
|
||||
o.k(i,i,c=4)
|
||||
|
||||
def calibrate(self):
|
||||
|
||||
class c:
|
||||
|
||||
x = 2
|
||||
s = 'string'
|
||||
|
||||
def f(self):
|
||||
|
||||
return self.x
|
||||
|
||||
def j(self,a,b):
|
||||
|
||||
self.y = a
|
||||
self.t = b
|
||||
|
||||
def k(self,a,b,c=3):
|
||||
|
||||
self.y = a
|
||||
self.s = b
|
||||
self.t = c
|
||||
|
||||
o = c
|
||||
|
||||
for i in xrange(self.rounds):
|
||||
pass
|
||||
|
||||
###
|
||||
|
||||
class Recursion(Test):
|
||||
|
||||
version = 2.0
|
||||
operations = 5
|
||||
rounds = 100000
|
||||
|
||||
def test(self):
|
||||
|
||||
global f
|
||||
|
||||
def f(x):
|
||||
|
||||
if x > 1:
|
||||
return f(x-1)
|
||||
return 1
|
||||
|
||||
for i in xrange(self.rounds):
|
||||
f(10)
|
||||
f(10)
|
||||
f(10)
|
||||
f(10)
|
||||
f(10)
|
||||
|
||||
def calibrate(self):
|
||||
|
||||
global f
|
||||
|
||||
def f(x):
|
||||
|
||||
if x > 0:
|
||||
return f(x-1)
|
||||
return 1
|
||||
|
||||
for i in xrange(self.rounds):
|
||||
pass
|
||||
|
||||
|
||||
### Test to make Fredrik happy...
|
||||
|
||||
if __name__ == '__main__':
|
||||
import timeit
|
||||
if 0:
|
||||
timeit.TestClass = PythonFunctionCalls
|
||||
timeit.main(['-s', 'test = TestClass(); test.rounds = 1000',
|
||||
'test.test()'])
|
||||
else:
|
||||
setup = """\
|
||||
global f,f1,g,h
|
||||
|
||||
# define functions
|
||||
def f():
|
||||
pass
|
||||
|
||||
def f1(x):
|
||||
pass
|
||||
|
||||
def g(a,b,c):
|
||||
return a,b,c
|
||||
|
||||
def h(a,b,c,d=1,e=2,f=3):
|
||||
return d,e,f
|
||||
|
||||
i = 1
|
||||
"""
|
||||
test = """\
|
||||
f()
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
g(i,i,i)
|
||||
g(i,i,i)
|
||||
g(i,i,i)
|
||||
g(i,i,i)
|
||||
h(i,i,3,i,i)
|
||||
h(i,i,i,2,i,3)
|
||||
|
||||
f()
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
g(i,i,i)
|
||||
g(i,i,i)
|
||||
g(i,i,i)
|
||||
g(i,i,i)
|
||||
h(i,i,3,i,i)
|
||||
h(i,i,i,2,i,3)
|
||||
|
||||
f()
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
g(i,i,i)
|
||||
g(i,i,i)
|
||||
g(i,i,i)
|
||||
g(i,i,i)
|
||||
h(i,i,3,i,i)
|
||||
h(i,i,i,2,i,3)
|
||||
|
||||
f()
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
g(i,i,i)
|
||||
g(i,i,i)
|
||||
g(i,i,i)
|
||||
g(i,i,i)
|
||||
h(i,i,3,i,i)
|
||||
h(i,i,i,2,i,3)
|
||||
|
||||
f()
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
f1(i)
|
||||
g(i,i,i)
|
||||
g(i,i,i)
|
||||
g(i,i,i)
|
||||
g(i,i,i)
|
||||
h(i,i,3,i,i)
|
||||
h(i,i,i,2,i,3)
|
||||
"""
|
||||
|
||||
timeit.main(['-s', setup,
|
||||
test])
|
Reference in New Issue
Block a user