Använda %lprun: hitta flaskhalsar
Genom att profilera en funktion kan du gå djupare in i funktionens källkod och identifiera eventuella flaskhalsar. Om vissa kodrader tar upp merparten av funktionens körtid kan det vara ett tecken på att du bör använda en annan, mer effektiv teknik.
Låt oss undersöka funktionen convert_units() närmare.
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
Ladda in paketet line_profiler i din IPython-session. Använd sedan %lprun för att profilera funktionen convert_units() med dina superhjältedata. Kom ihåg att använda rätt syntax för %lprun – du behöver ange flaggan -f följt av den funktion du vill profilera.
Funktionen convert_units(), listan heroes, arrayen hts och arrayen wts har redan laddats in i din session. När du är klar med koden, svara på följande fråga:
Hur stor andel av den totala körtiden i convert_units() används för kodraden med listvariabeln new_hts?
Den här övningen är en del av kursen
Att skriva effektiv Python-kod
Interaktiv övning med praktiskt arbete
Gör teori till handling med en av våra interaktiva övningar
Starta övningen