{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# iPython Profiler\n", "\n", "IPython bietet Zugriff auf eine breite Palette von Funktionen um die Zeiten zu messen und Profile zu erstellen. Hier werden die folgenden magischen IPython-Befehle erläutert:\n", "\n", "| Befehl | Beschreibung |\n", "| -------------- | --------------------------------------------------------------------------------- |\n", "| `%time` | Zeit für die Ausführung einer einzelnen Anweisung |\n", "| `%timeit` | Durchschnittliche Zeit für die wiederholte Ausführung einer einzelnen Anweisung |\n", "| `%prun` | Code mit dem Profiler ausführen |\n", "| `%lprun` | Code mit dem zeilenweisen Profiler ausführen |\n", "| `%memit` | Messen der Speichernutzung einer einzelnen Anweisung |\n", "| `%mprun` | Führt den Code mit dem zeilenweisen Memory-Profiler aus |\n", "\n", "Die letzten vier Befehle sind nicht in IPython selbst, sondern in den Modulen [line_profiler](https://github.com/pyutils/line_profiler) und [memory_profiler](https://github.com/pythonprofilers/memory_profiler) enthalten.\n", "\n", "
\n", "\n", "**Siehe auch**\n", "\n", "* [Penn Machine Learning Benchmarks](https://github.com/EpistasisLab/pmlb)\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## `%timeit` und `%time`\n", "\n", "Wir haben die `%timeit`Zeilen- und `%%timeit`-Zellmagie bereits in der Einführung der magischen Funktionen in IPython Magic Commands gesehen. Sie können für Zeitmessungen bei der wiederholten Ausführung von Code-Schnipseln verwendet werden:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1.42 µs ± 222 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)\n" ] } ], "source": [ "%timeit sum(range(100))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Beachtet, dass `%timeit` die Ausführung mehrfach in einer Schleife (`loops`) ausführt. Wenn mit `-n` nicht die Anzahl der Schleifen festgelegt wird, passt `%timeit` die Anzahl automatisch so an, dass ein ausreichende Messgenauigkeit erreicht wird:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "503 ms ± 83.6 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n" ] } ], "source": [ "%%timeit\n", "\n", "total = 0\n", "\n", "for i in range(1000):\n", " for j in range(1000):\n", " total += i * (-1) ** j" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Manchmal ist das Wiederholen einer Operation nicht die beste Option, z.B. wenn wir eine Liste haben, die wir sortieren möchten. Hier werden wir möglicherweise durch eine wiederholte Operation in die Irre geführt. Das Sortieren einer vorsortierten Liste ist viel schneller als das Sortieren einer unsortierten Liste, sodass die Wiederholung das Ergebnis verzerrt:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "478 µs ± 19.1 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)\n" ] } ], "source": [ "import random\n", "\n", "\n", "L = [random.random() for i in range(100000)]\n", "\n", "%timeit L.sort()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Dann ist die `%time`-Funktion möglicherweise die bessere Wahl. Auch bei länger laufenden Befehlen, wenn kurze systembedingte Verzögerungen das Ergebnis wahrscheinlich kaum beeinflussen, dürfte `%time` die bessere Wahl sein:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 18.8 ms, sys: 0 ns, total: 18.8 ms\n", "Wall time: 18.7 ms\n" ] } ], "source": [ "import random\n", "\n", "\n", "L = [random.random() for i in range(100000)]\n", "\n", "%time L.sort()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sortieren einer bereits sortierten Liste:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 1.13 ms, sys: 0 ns, total: 1.13 ms\n", "Wall time: 1.14 ms\n" ] } ], "source": [ "%time L.sort ()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Beachtet, wie viel schneller die vorsortierte Liste zu sortieren ist, aber beachtet auch, wie viel länger das Timing mit `%time` gegenüber `%timeit` dauert, sogar für die vorsortierte Liste. Dies ist auf die Tatsache zurückzuführen, dass `%timeit` einige clevere Dinge unternimmt, um zu verhindern, dass Systemaufrufe die Zeitmessung stören. So wird beispielsweise die *Garbage Collection* nicht mehr verwendeter Python-Objekte verhindert, die sich andernfalls auf die Zeitmessung auswirken könnten. Aus diesem Grund sind die `%timeit`-Ergebnisse normalerweise merklich schneller als die `%time`-Ergebnisse." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Profilerstellung für Skripte: `%prun`\n", "\n", "Ein Programm besteht aus vielen einzelnen Anweisungen, und manchmal ist es wichtiger, diese Anweisungen im Kontext zu messen, als sie selbst zu messen. Python enthält einen integrierten [Code-Profiler](https://docs.python.org/3/library/profile.html). IPython bietet jedoch eine wesentlich bequemere Möglichkeit, diesen Profiler in Form der Magic-Funktion zu verwenden: `%prun`.\n", "\n", "Als Beispiel definieren wir eine einfache Funktion, die einige Berechnungen durchführt:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "def sum_of_lists(N):\n", " total = 0\n", " for i in range(5):\n", " L = [j ^ (j >> i) for j in range(N)]\n", " total += sum(L)\n", " return total" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " " ] } ], "source": [ "%prun sum_of_lists(1000000)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Im Notebook sieht die Ausgabe ungefähr so aus:\n", "\n", "```\n", "14 function calls in 9.597 seconds\n", "\n", " Ordered by: internal time\n", "\n", " ncalls tottime percall cumtime percall filename:lineno(function)\n", " 5 8.121 1.624 8.121 1.624 :4()\n", " 5 0.747 0.149 0.747 0.149 {built-in method builtins.sum}\n", " 1 0.665 0.665 9.533 9.533 :1(sum_of_lists)\n", " 1 0.065 0.065 9.597 9.597 :1()\n", " 1 0.000 0.000 9.597 9.597 {built-in method builtins.exec}\n", " 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Das Ergebnis ist eine Tabelle, die sortiert nach Gesamtzeit für jeden Funktionsaufruf die Ausführungsdauer angibt. In diesem Fall wird die meiste Zeit mit *List Comprehension* innerhalb von `sum_of_lists` verbraucht. Dies gibt uns Anhaltspunkte, an welcher Stelle wir die Effizienz des Algorithmus verbessern könnten." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Zeilenweise Profilerstellung: `%lprun`\n", "\n", "Die Profilerstellung von `%prun` ist nützlich, aber manchmal ist ein zeilenweiser Profilreport aufschlussreicher. Dies ist nicht in Python oder IPython integriert, aber mit [line_profiler](https://github.com/rkern/line_profiler) steht ein Paket zur Verfügung, das dies ermöglicht. Diese kann in eurem Kernel bereitgestellt werden mit\n", "\n", "```\n", "$ spack env activate python-311\n", "$ spack install py-line-profiler\n", "```\n", "\n", "Alternativ könnt ihr `line-profiler` auch mit anderen Paketmanagern installieren, z.B.\n", "\n", "```\n", "$ uv add line_profiler\n", "```\n", "\n", "Falls ihr Python 3.7.x verwendet und die Fehlermeldung bekommt `error: command 'clang' failed with exit status 1`, bleibt aktuell nur, `Cython` zusammen mit den Ressourcen aus dem Git-Repository zu installieren:\n", "\n", "```\n", "$ uv add Cython git+https://github.com/rkern/line_profiler.git#egg=line_profiler\n", "```\n", "\n", "Nun könnt ihr IPython mit der `line_profiler`-Erweiterung laden:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "%load_ext line_profiler" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Der `%lprun`-Befehl führt eine zeilenweise Profilerstellung für jede Funktion durch. In diesem Fall muss explizit angegeben werden, welche Funktionen für die Profilerstellung interessant sind:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "%lprun -f sum_of_lists sum_of_lists(5000)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Das Ergebnis sieht ungefähr so aus:\n", "\n", "```\n", "Timer unit: 1e-06 s\n", "\n", "Total time: 0.015145 s\n", "File: \n", "Function: sum_of_lists at line 1\n", "\n", "Line # Hits Time Per Hit % Time Line Contents\n", "==============================================================\n", " 1 def sum_of_lists(N):\n", " 2 1 1.0 1.0 0.0 total = 0\n", " 3 6 11.0 1.8 0.1 for i in range(5):\n", " 4 5 14804.0 2960.8 97.7 L = [j ^ (j >> i) for j in range(N)]\n", " 5 5 329.0 65.8 2.2 total += sum(L)\n", " 6 1 0.0 0.0 0.0 return total\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Die Zeit wird in Mikrosekunden angegeben und wir können sehen, in welcher Zeile die Funktion die meiste Zeit verbringt. Eventuell können wir das Skript dann so ändern, dass die Effizienz der Funktion gesteigert werden kann.\n", "\n", "Weitere Informationen zu `%lprun` sowie die verfügbaren Optionen findet ihr in der IPython-Hilfefunktion `%lprun?`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Speicherprofil erstellen: `%memit` und `%mprun`\n", "\n", "Ein weiterer Aspekt der Profilerstellung ist die Speichermenge, die eine Operation verwendet. Dies kann mit einer anderen IPython-Erweiterung ausgewertet werden, dem `memory_profiler`. Diese kann in eurem Kernel bereitgestellt werden mit\n", "\n", "```\n", "$ spack env activate python-374\n", "$ spack install py-memory-profiler ^python@3.7.4%gcc@9.1.0\n", "```\n", "\n", "Alternativ könnt ihr `memory-profiler` auch mit anderen Paketmanagern installieren, z.B.\n", "\n", "```\n", "$ uv add memory_profiler\n", "```" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "%load_ext memory_profiler" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "peak memory: 136.37 MiB, increment: 69.42 MiB\n" ] } ], "source": [ "%memit sum_of_lists(1000000)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wir sehen, dass diese Funktion ungefähr 100 MB Speicher belegt.\n", "\n", "Für eine zeilenweise Beschreibung der Speichernutzung können wir die `%mprun`-Magie verwenden. Leider funktioniert diese Magie nur für Funktionen, die in separaten Modulen definiert sind, und nicht für das Notebook selbst. Daher erstellen wir zunächst mit der `%%file`-Magie ein einfaches Modul mit dem Namen `mprun_demo.py`, das unsere `sum_of_lists`-Funktion enthält." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Writing mprun_demo.py\n" ] } ], "source": [ "%%file mprun_demo.py\n", "from memory_profiler import profile\n", "\n", "\n", "@profile\n", "def my_func():\n", " a = [1] * (10**6)\n", " b = [2] * (2 * 10**7)\n", " del b\n", " return a" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Filename: /srv/jupyter/jupyter-tutorial-de/docs/performance/mprun_demo.py\n", "\n", "Line # Mem usage Increment Line Contents\n", "================================================\n", " 3 67.3 MiB 67.3 MiB @profile\n", " 4 def my_func():\n", " 5 74.8 MiB 7.5 MiB a = [1] * (10 ** 6)\n", " 6 227.4 MiB 152.6 MiB b = [2] * (2 * 10 ** 7)\n", " 7 74.9 MiB 0.0 MiB del b\n", " 8 74.9 MiB 0.0 MiB return a\n", "\n", "\n", "\n" ] } ], "source": [ "from mprun_demo import my_func\n", "\n", "\n", "%mprun -f my_func my_func()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Hier zeigt die `Increment`-Spalte, wie stark sich jede Zeile auf den gesamten Speicherverbrauch auswirkt: Beachtet, dass wir beim Berechnen von `b` etwa 160 MB Speicher zusätzlich benötigen; dieser wird aber durch das Löschen von `b` nicht wieder freigegeben.\n", "\n", "Weitere Informationen zu `%memit` und `%mprun` sowie deren Optionen findet ihr in der IPython-Hilfe mit `%memit?`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## pyheatmagic\n", "\n", "[pyheatmagic](https://github.com/csurfer/pyheatmagic) ist eine Erweiterung, die den IPython-Magic-Befehl `%%heat` zum Anzeigen von Python-Code als Heatmap mit [Py-Heat](https://github.com/csurfer/pyheat) erlaubt.\n", "\n", "Sie lässt sich einfach im Kernel installieren mit\n", "\n", "```\n", "$ uv add py-heat-magic\n", "Installing py-heat-magic…\n", "…```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Laden der Extension in IPython" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "%load_ext heat" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Anzeigen der Heatmap" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " " ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%%heat\n", "def powfun(a, b):\n", " \"\"\"Method to raise a to power b using pow() function.\"\"\"\n", " return pow(a, b)\n", "\n", "\n", "def powop(a, b):\n", " \"\"\"Method to raise a to power b using ** operator.\"\"\"\n", " return a**b\n", "\n", "\n", "def powmodexp(a, b):\n", " \"\"\"Method to raise a to power b using modular exponentiation.\"\"\"\n", " base = a\n", " res = 1\n", " while b > 0:\n", " if b & 1:\n", " res *= base\n", " base *= base\n", " b >>= 1\n", " return res\n", "\n", "\n", "def main():\n", " \"\"\"Test function.\"\"\"\n", " a, b = 2377757, 773\n", " pow_function = powfun(a, b)\n", " pow_operator = powop(a, b)\n", " pow_modular_exponentiation = powmodexp(a, b)\n", "\n", "\n", "if __name__ == \"__main__\":\n", " main()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Alternativ kann die Heatmap auch als Datei gespeichert werden, z.B. mit\n", "```\n", "%%heat -o pow-heatmap.png\n", "```" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3.11 Kernel", "language": "python", "name": "python311" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.4" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autoclose": false, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 1, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": {}, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 2 }