summaryrefslogtreecommitdiffstatshomepage
path: root/tests/bench/funcall-3-funcall-local.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/bench/funcall-3-funcall-local.py')
-rw-r--r--tests/bench/funcall-3-funcall-local.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/bench/funcall-3-funcall-local.py b/tests/bench/funcall-3-funcall-local.py
new file mode 100644
index 0000000000..1a6d728c63
--- /dev/null
+++ b/tests/bench/funcall-3-funcall-local.py
@@ -0,0 +1,16 @@
+# Function call overhead test
+# Perform the same trivial operation as calling function, cached in a
+# local variable. This is commonly known optimization for overly dynamic
+# languages (the idea is to cut on symbolic look up overhead, as local
+# variables are accessed by offset, not by name)
+import bench
+
+def f(x):
+ return x + 1
+
+def test(num):
+ f_ = f
+ for i in iter(range(num)):
+ a = f_(i)
+
+bench.run(test)