LoslegenKostenlos loslegen

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

Kurs anzeigen

Interaktive Übung

In dieser interaktiven Übung kannst du die Theorie in die Praxis umsetzen.

Übung starten