Aan de slagGa gratis aan de slag

%lprun gebruiken: bottlenecks opsporen

Een functie profileren laat je dieper in de broncode duiken en mogelijke bottlenecks opsporen. Als je ziet dat bepaalde regels het grootste deel van de runtime innemen, is dat een teken dat je een andere, efficiëntere techniek kunt inzetten.

Laten we dieper ingaan op de functie convert_units().

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

Laad het pakket line_profiler in je IPython-sessie. Gebruik vervolgens %lprun om de functie convert_units() te profileren op je superheldengegevens. Denk aan de speciale syntaxis voor %lprun (je moet een -f-vlag meegeven om de te profileren functie te specificeren).

De functie convert_units(), de lijst heroes, en de arrays hts en wts zijn al geladen in je sessie. Beantwoord na het coderen de volgende vraag:

Welk percentage van de tijd wordt besteed aan de list comprehension-regel new_hts ten opzichte van de totale tijd in de functie convert_units()?

Deze oefening maakt deel uit van de cursus

Efficiënte Python-code schrijven

Cursus bekijken

Praktische interactieve oefening

Zet theorie om in actie met een van onze interactieve oefeningen.

Begin met trainen