Erste SchritteKostenlos loslegen

Mit %lprun: Engpässe erkennen

Das Profiling einer Funktion ermöglicht es dir, tiefer in den Quellcode der Funktion einzudringen und potenzielle Engpässe zu erkennen. Wenn du siehst, dass bestimmte Codezeilen den größten Teil der Laufzeit einer Funktion beanspruchen, ist das ein Hinweis darauf, dass du vielleicht eine andere, effizientere Technik einsetzen solltest.

Gehen wir näher auf die Funktion convert_units() ein.

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-Sitzung. Verwende dann %lprun, um ein Profil der Funktion convert_units() zu erstellen, die auf die Daten deiner Superhelden wirkt. Denke daran, die spezielle Syntax für die Arbeit mit %lprun zu verwenden (du musst ein -f Flag angeben, das die Funktion spezifiziert, die du profilieren möchtest).

Die Funktion convert_units(), die Liste heroes, das Array hts und das Array wts wurden in deine Sitzung geladen. Wenn du mit dem Codieren fertig bist, beantworte die folgende Frage:

Wie viel Prozent der Zeit wird für die Codezeile new_hts list comprehension im Verhältnis zur Gesamtzeit für die Funktion convert_units() aufgewendet?

Diese Übung ist Teil des Kurses

Effizienten Python-Code schreiben

Kurs anzeigen

Interaktive Übung zum Anfassen

Setzen Sie die Theorie mit einer unserer interaktiven Übungen in die Tat um

Beginnen Sie mit dem Training