summaryrefslogtreecommitdiffstatshomepage
path: root/tests/internal_bench/funcall-3-funcall-local.py
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2019-06-18 23:44:16 +1000
committerDamien George <damien.p.george@gmail.com>2019-06-28 16:28:59 +1000
commitd86fb670e6d78ca38dbaedfdde35180e3b8f4bb3 (patch)
treecfb199a27fadfd5d04d3aa13f7b22b02db555453 /tests/internal_bench/funcall-3-funcall-local.py
parentd165a401dce66ba952b016d116b60e77b11f3e1f (diff)
downloadmicropython-d86fb670e6d78ca38dbaedfdde35180e3b8f4bb3.tar.gz
micropython-d86fb670e6d78ca38dbaedfdde35180e3b8f4bb3.zip
tests: Rename "bench" tests to "internal_bench" and run-internalbench.py
To emphasise these benchmark tests compare the internal performance of features amongst themselves, rather than absolute performance testing.
Diffstat (limited to 'tests/internal_bench/funcall-3-funcall-local.py')
-rw-r--r--tests/internal_bench/funcall-3-funcall-local.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/internal_bench/funcall-3-funcall-local.py b/tests/internal_bench/funcall-3-funcall-local.py
new file mode 100644
index 0000000000..1a6d728c63
--- /dev/null
+++ b/tests/internal_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)