summaryrefslogtreecommitdiff
path: root/docs/examples/tutorial/profiling_tutorial
diff options
context:
space:
mode:
authorMatus Valo <matusvalo@users.noreply.github.com>2021-12-14 14:18:17 +0100
committerGitHub <noreply@github.com>2021-12-14 14:18:17 +0100
commit0dffecfa4407b761ba138a6bbcfcffcd65454aa8 (patch)
tree7d30712c29e2755df4effadedb8e28ca1570feee /docs/examples/tutorial/profiling_tutorial
parentb2fac63f4a653bfd32eb4bba20bfb30b2ebad190 (diff)
downloadcython-0dffecfa4407b761ba138a6bbcfcffcd65454aa8.tar.gz
Docs: Migrate profiling tutorial to pure Python (GH-4311)
Diffstat (limited to 'docs/examples/tutorial/profiling_tutorial')
-rw-r--r--docs/examples/tutorial/profiling_tutorial/calc_pi.py2
-rw-r--r--docs/examples/tutorial/profiling_tutorial/calc_pi_2.py12
-rw-r--r--docs/examples/tutorial/profiling_tutorial/calc_pi_2.pyx2
-rw-r--r--docs/examples/tutorial/profiling_tutorial/calc_pi_3.py15
-rw-r--r--docs/examples/tutorial/profiling_tutorial/calc_pi_3.pyx5
-rw-r--r--docs/examples/tutorial/profiling_tutorial/calc_pi_4.py17
-rw-r--r--docs/examples/tutorial/profiling_tutorial/calc_pi_4.pyx7
-rw-r--r--docs/examples/tutorial/profiling_tutorial/often_called.py5
-rw-r--r--docs/examples/tutorial/profiling_tutorial/profile.py2
-rw-r--r--docs/examples/tutorial/profiling_tutorial/profile_2.py2
10 files changed, 56 insertions, 13 deletions
diff --git a/docs/examples/tutorial/profiling_tutorial/calc_pi.py b/docs/examples/tutorial/profiling_tutorial/calc_pi.py
index 08c9ec2d4..3775eb816 100644
--- a/docs/examples/tutorial/profiling_tutorial/calc_pi.py
+++ b/docs/examples/tutorial/profiling_tutorial/calc_pi.py
@@ -1,5 +1,3 @@
-# calc_pi.py
-
def recip_square(i):
return 1. / i ** 2
diff --git a/docs/examples/tutorial/profiling_tutorial/calc_pi_2.py b/docs/examples/tutorial/profiling_tutorial/calc_pi_2.py
new file mode 100644
index 000000000..b05eeedb5
--- /dev/null
+++ b/docs/examples/tutorial/profiling_tutorial/calc_pi_2.py
@@ -0,0 +1,12 @@
+# cython: profile=True
+import cython
+
+def recip_square(i: cython.longlong):
+ return 1. / i ** 2
+
+def approx_pi(n: cython.int = 10000000):
+ val: cython.double = 0.
+ k: cython.int
+ for k in range(1, n + 1):
+ val += recip_square(k)
+ return (6 * val) ** .5
diff --git a/docs/examples/tutorial/profiling_tutorial/calc_pi_2.pyx b/docs/examples/tutorial/profiling_tutorial/calc_pi_2.pyx
index c4c6a1bb9..485bbabf8 100644
--- a/docs/examples/tutorial/profiling_tutorial/calc_pi_2.pyx
+++ b/docs/examples/tutorial/profiling_tutorial/calc_pi_2.pyx
@@ -1,7 +1,5 @@
# cython: profile=True
-# calc_pi.pyx
-
def recip_square(int i):
return 1. / i ** 2
diff --git a/docs/examples/tutorial/profiling_tutorial/calc_pi_3.py b/docs/examples/tutorial/profiling_tutorial/calc_pi_3.py
new file mode 100644
index 000000000..df3dfa3a1
--- /dev/null
+++ b/docs/examples/tutorial/profiling_tutorial/calc_pi_3.py
@@ -0,0 +1,15 @@
+# cython: profile=True
+import cython
+
+@cython.cfunc
+@cython.inline
+@cython.exceptval(-1.0)
+def recip_square(i: cython.longlong) -> cython.double:
+ return 1. / (i * i)
+
+def approx_pi(n: cython.int = 10000000):
+ val: cython.double = 0.
+ k: cython.int
+ for k in range(1, n + 1):
+ val += recip_square(k)
+ return (6 * val) ** .5
diff --git a/docs/examples/tutorial/profiling_tutorial/calc_pi_3.pyx b/docs/examples/tutorial/profiling_tutorial/calc_pi_3.pyx
index 8636e659c..742991b1a 100644
--- a/docs/examples/tutorial/profiling_tutorial/calc_pi_3.pyx
+++ b/docs/examples/tutorial/profiling_tutorial/calc_pi_3.pyx
@@ -1,8 +1,9 @@
# cython: profile=True
-# calc_pi.pyx
-cdef inline double recip_square(int i) except -1.0:
+
+
+cdef inline double recip_square(long long i) except -1.0:
return 1. / (i * i)
def approx_pi(int n=10000000):
diff --git a/docs/examples/tutorial/profiling_tutorial/calc_pi_4.py b/docs/examples/tutorial/profiling_tutorial/calc_pi_4.py
new file mode 100644
index 000000000..b457cd99d
--- /dev/null
+++ b/docs/examples/tutorial/profiling_tutorial/calc_pi_4.py
@@ -0,0 +1,17 @@
+# cython: profile=True
+
+import cython
+
+@cython.profile(False)
+@cython.cfunc
+@cython.inline
+@cython.exceptval(-1.0)
+def recip_square(i: cython.longlong) -> float:
+ return 1. / (i * i)
+
+def approx_pi(n: cython.int = 10000000):
+ val: cython.double = 0.
+ k: cython.int
+ for k in range(1, n + 1):
+ val += recip_square(k)
+ return (6 * val) ** .5
diff --git a/docs/examples/tutorial/profiling_tutorial/calc_pi_4.pyx b/docs/examples/tutorial/profiling_tutorial/calc_pi_4.pyx
index bd4783af1..415ac4a22 100644
--- a/docs/examples/tutorial/profiling_tutorial/calc_pi_4.pyx
+++ b/docs/examples/tutorial/profiling_tutorial/calc_pi_4.pyx
@@ -1,11 +1,12 @@
# cython: profile=True
-# calc_pi.pyx
-
cimport cython
+
+
+
@cython.profile(False)
-cdef inline double recip_square(int i) except -1.0:
+cdef inline double recip_square(long long i) except -1.0:
return 1. / (i * i)
def approx_pi(int n=10000000):
diff --git a/docs/examples/tutorial/profiling_tutorial/often_called.py b/docs/examples/tutorial/profiling_tutorial/often_called.py
new file mode 100644
index 000000000..15197cb97
--- /dev/null
+++ b/docs/examples/tutorial/profiling_tutorial/often_called.py
@@ -0,0 +1,5 @@
+import cython
+
+@cython.profile(False)
+def my_often_called_function():
+ pass
diff --git a/docs/examples/tutorial/profiling_tutorial/profile.py b/docs/examples/tutorial/profiling_tutorial/profile.py
index 60e90c8ba..c0b76472a 100644
--- a/docs/examples/tutorial/profiling_tutorial/profile.py
+++ b/docs/examples/tutorial/profiling_tutorial/profile.py
@@ -1,5 +1,3 @@
-# profile.py
-
import pstats, cProfile
import calc_pi
diff --git a/docs/examples/tutorial/profiling_tutorial/profile_2.py b/docs/examples/tutorial/profiling_tutorial/profile_2.py
index b0e91b07f..ca5ca514b 100644
--- a/docs/examples/tutorial/profiling_tutorial/profile_2.py
+++ b/docs/examples/tutorial/profiling_tutorial/profile_2.py
@@ -1,5 +1,3 @@
-# profile.py
-
import pstats, cProfile
import pyximport