diff options
| author | Matus Valo <matusvalo@users.noreply.github.com> | 2021-12-14 14:18:17 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-12-14 14:18:17 +0100 |
| commit | 0dffecfa4407b761ba138a6bbcfcffcd65454aa8 (patch) | |
| tree | 7d30712c29e2755df4effadedb8e28ca1570feee /docs/examples/tutorial/profiling_tutorial | |
| parent | b2fac63f4a653bfd32eb4bba20bfb30b2ebad190 (diff) | |
| download | cython-0dffecfa4407b761ba138a6bbcfcffcd65454aa8.tar.gz | |
Docs: Migrate profiling tutorial to pure Python (GH-4311)
Diffstat (limited to 'docs/examples/tutorial/profiling_tutorial')
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 |
