Engpässe mithilfe von %lprun erkennen
Durch das Profiling einer Funktion kannst du tiefer in den Quellcode der Funktion eintauchen und möglicherweise Engpässe entdecken. Wenn du siehst, dass bestimmte Codezeilen den Großteil der Laufzeit der Funktion beanspruchen, ist das ein Hinweis darauf, dass du vielleicht eine andere, effizientere Technik einsetzen solltest.
Schauen wir uns die Funktion convert_units() genauer an.
def convert_units(heroes, heights, weights):
new_hts = [ht * 0.39370 for ht in heights]
new_wts = [wt * 2.20462 for wt in weights]
hero_data = {}
for i,hero in enumerate(heroes):
hero_data[hero] = (new_hts[i], new_wts[i])
return hero_data
Lade das Paket line_profiler in deine IPython-Session. Nutze anschließend %lprun, um die Funktion convert_units(), die auf deine Superhelden-Daten angewendet wird, zu analysieren. Denke daran, die spezielle Syntax für die Arbeit mit %lprun zu benutzen (du musst ein -f-Flag angeben, das die Funktion angibt, die du analysieren möchtest).
Die Funktionen convert_units(), heroes, hts und wts wurden in deine Session geladen. Wenn du mit dem Programmieren fertig bist, beantworte bitte die folgende Frage:
Wie viel Prozent der Zeit wird für die Codezeile new_hts verbraucht, verglichen mit der Gesamtzeit, die in der Funktion convert_units() verbracht wird?
Diese Übung ist Teil des Kurses
Effizienten Python-Code schreiben
Interaktive Übung
In dieser interaktiven Übung kannst du die Theorie in die Praxis umsetzen.
Übung starten