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
Interaktive Übung zum Anfassen
Setzen Sie die Theorie mit einer unserer interaktiven Übungen in die Tat um
