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?
Toto cvičení je součástí kurzu
Psaní efektivního kódu v Pythonu
Interaktivní praktické cvičení
Proměňte teorii v praxi s jedním z našich interaktivních cvičení
Začít cvičení