diff options
author | Antoine Pitrou <solipsis@pitrou.net> | 2008-07-25 22:02:07 (GMT) |
---|---|---|
committer | Antoine Pitrou <solipsis@pitrou.net> | 2008-07-25 22:02:07 (GMT) |
commit | 0c37ae0464279539cbf6dedfff181527be71e129 (patch) | |
tree | c6b14c747f583f688f68b7517278a5036f765dc7 | |
parent | 3ac2f24f25e3fe387cfffa17cdfcfdb6c0b91f9c (diff) | |
download | cpython-0c37ae0464279539cbf6dedfff181527be71e129.zip cpython-0c37ae0464279539cbf6dedfff181527be71e129.tar.gz cpython-0c37ae0464279539cbf6dedfff181527be71e129.tar.bz2 |
add a pybench test for complex function calls (part of #1819)
-rw-r--r-- | Tools/pybench/Calls.py | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/Tools/pybench/Calls.py b/Tools/pybench/Calls.py index 72ccd0e..e27798b 100644 --- a/Tools/pybench/Calls.py +++ b/Tools/pybench/Calls.py @@ -109,6 +109,64 @@ class PythonFunctionCalls(Test): ### +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 |