Author: Maciej Fijalkowski <[email protected]>
Branch: extradoc
Changeset: r4833:63504cdb16b2
Date: 2012-10-03 10:08 +0200
http://bitbucket.org/pypy/extradoc/changeset/63504cdb16b2/

Log:    some benchmark, very informative IMO

diff --git a/talk/pyconza2012/examples/calls.py 
b/talk/pyconza2012/examples/calls.py
new file mode 100644
--- /dev/null
+++ b/talk/pyconza2012/examples/calls.py
@@ -0,0 +1,32 @@
+
+import sys, time
+
+def inner(a, b, c):
+    pass
+
+def simple_call(a, b, c):
+    inner(a, b, c)
+
+def simple_call2(a, b, c):
+    inner(a, c=c, b=b)
+
+def star_call(a, b, c):
+    inner(*(a, b, c))
+
+def star_call_complex(a, b, c):
+    inner(*(a, b), **{'c': c})
+
+def abomination(a, b, c):
+    inner(**locals())
+
+def run(func):
+    count = int(sys.argv[1])
+    t0 = time.time()
+    for i in range(count):
+        func(i, i, i)
+    tk = time.time()
+    t = (tk - t0) / count
+    print "%.2e per call, %d cycles" % (t, int(t * 1.7e9))
+
+for f in [simple_call, simple_call2, star_call, star_call_complex, 
abomination]:
+    run(f)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to