1. Učit se
  2. /
  3. Kurzy
  4. /
  5. Psaní efektivního kódu v Pythonu

Connected

Cvičení

Použití %lprun: hledání úzkých míst

Profilování funkce ti umožní nahlédnout hlouběji do jejího zdrojového kódu a odhalit potenciální úzká místa. Pokud určité řádky kódu zabírají většinu celkové doby běhu funkce, je to signál, že by se vyplatilo sáhnout po jiném, efektivnějším řešení.

Pojďme se blíže podívat na funkci 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

Načti balíček line_profiler do svého IPython sezení. Pak použij %lprun k profilování funkce convert_units() na datech o superhrdinech. Nezapomeň na speciální syntaxi pro práci s %lprun — budeš muset zadat příznak -f s názvem funkce, kterou chceš profilovat.

Funkce convert_units(), seznam heroes, pole hts a pole wts jsou již do sezení načteny. Až dokončíš kódování, odpověz na následující otázku:

Kolik procent z celkové doby běhu funkce convert_units() zabírá řádek s list comprehension new_hts?

Pokyny

50 XP

Možné odpovědi