summaryrefslogtreecommitdiffstats
path: root/Tools
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2008-07-25 22:02:07 (GMT)
committerAntoine Pitrou <solipsis@pitrou.net>2008-07-25 22:02:07 (GMT)
commit0c37ae0464279539cbf6dedfff181527be71e129 (patch)
treec6b14c747f583f688f68b7517278a5036f765dc7 /Tools
parent3ac2f24f25e3fe387cfffa17cdfcfdb6c0b91f9c (diff)
downloadcpython-0c37ae0464279539cbf6dedfff181527be71e129.zip
cpython-0c37ae0464279539cbf6dedfff181527be71e129.tar.gz
cpython-0c37ae0464279539cbf6dedfff181527be71e129.tar.bz2
add a pybench test for complex function calls (part of #1819)
Diffstat (limited to 'Tools')
-rw-r--r--Tools/pybench/Calls.py58
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