diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/bench/funcall-1-inline.py | 9 | ||||
-rw-r--r-- | tests/bench/funcall-2-funcall.py | 12 | ||||
-rw-r--r-- | tests/bench/funcall-3-funcall-local.py | 16 |
3 files changed, 37 insertions, 0 deletions
diff --git a/tests/bench/funcall-1-inline.py b/tests/bench/funcall-1-inline.py new file mode 100644 index 0000000000..fbeb79630d --- /dev/null +++ b/tests/bench/funcall-1-inline.py @@ -0,0 +1,9 @@ +# Function call overhead test +# Establish a baseline for performing a trivial operation inline +import bench + +def test(num): + for i in iter(range(num)): + a = i + 1 + +bench.run(test) diff --git a/tests/bench/funcall-2-funcall.py b/tests/bench/funcall-2-funcall.py new file mode 100644 index 0000000000..d5c36c60aa --- /dev/null +++ b/tests/bench/funcall-2-funcall.py @@ -0,0 +1,12 @@ +# Function call overhead test +# Perform the same trivial operation as global function call +import bench + +def f(x): + return x + 1 + +def test(num): + for i in iter(range(num)): + a = f(i) + +bench.run(test) 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) |