Kom igångKom igång gratis

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

Visa kurs

Interaktiv övning med praktiskt arbete

Gör teori till handling med en av våra interaktiva övningar

Starta övningen