Měření doby provádění kódu - důležitý aspekt profilování a optimalizace softwaru, který může pomoci zlepšit výkon programů. V Pythonu existuje několik jednoduchých a účinných způsobů, jak změřit běh kódu a identifikovat úzká místa, která program zpomalují.
Jeden z nejjednodušších způsobů, jak změřit čas spuštění kódu - použití modulu time. Modul time obsahuje funkce pro práci s časem, včetně funkce time (), která vrací počet sekund, které uplynuly od začátku éry (1.ledna 1970). Python 3.X používá funkci time.perf_counter(), která vrací aktuální podíl času v sekundách (obvykle v rozmezí 0 až 1).
Dalším praktickým způsobem měření doby provádění kódu je použití metody timeit() z modulu timeit. Tato metoda vám umožňuje spustit kód několikrát a vrátit celkovou dobu běhu v sekundách. Modul timeit také poskytuje možnost určit počet opakování a zprůměrovat výsledky, což umožňuje přesnější měření výkonu kódu.
Kromě toho existuje možnost použít dekoratéry k měření doby výkonu funkcí. Dekoratéři jsou způsob, jak přidat další funkce ke stávajícím funkcím, aniž byste museli měnit jejich kód. Pomocí dekoratéra lze změřit dobu výkonu funkce a výsledek přenést na obrazovku.
Použití modulu timeit
Výhoda použití modulu timeit automaticky bere v úvahu různé faktory, které mohou ovlivnit běh, jako je načítání procesoru nebo aktivita jiných programů v počítači. Výsledky získané pomocí timeit, přesnější a spolehlivější ve srovnání s jednoduchými způsoby měření doby běhu.
Pro použití modulu timeit je nutné jej importovat pomocí příkazu import timeit . Poté lze použít funkci timeit.timeit (), který přijímá dva závazné argumenty: řádek s kódem, který chcete provést, a počet opakování. Například:
import timeitcode = '''def foo():for i in range(1000):pass'''timeit.timeit(code, number=1000)
V tomto příkladu bude kód def foo (): proveden 1000krát a funkce timeit () vrátí průměrnou dobu běhu v sekundách.
Kromě toho modul timeit poskytuje další užitečné funkce pro měření doby běhu kódu, jako je timeit.repeat() , timeit.default_timer() a další. Pomocí těchto funkcí je možné získat ještě přesnější a všestrannější měření doby běhu kódu v Pythonu.
Použití funkce time ()
V Pythonu lze k měření doby běhu kódu použít funkci time () z modulu time .
Tato funkce vrací aktuální čas v sekundách od začátku éry (1.ledna 1970) jako desetinné číslo. Je možné si zapamatovat hodnotu před spuštěním kódu a porovnat ji s novou hodnotou po spuštění kódu, abyste získali čas strávený spuštěním.
Chcete-li to provést, musíte importovat modul time a zavolat funkci time() na začátku a na konci bloku kódu, který je třeba změřit. Odečtením počátečního času od konečného získáme čas spuštění kódu v sekundách.
Příklad použití funkce time() :
import timestart_time = time.time()# Блок кода, время выполнения которого необходимо измеритьfor i in range(1000000):passend_time = time.time()execution_time = end_time - start_timeprint(f"Время выполнения кода: секунд")
Výsledek práce programu bude vypadat zhruba takto:
Время выполнения кода: 0.0987654321 секунд
Použití funkce time() tedy umožňuje pohodlné měření doby spuštění kódu v Pythonu.
Použití dekoratéra timeit
Chcete-li použít dekoratér timeit, musíte jej importovat z modulu timeit:
from timeit import timeit
Poté je možné použít dekor timeit na funkci nebo kódovou jednotku, kterou je třeba změřit. Například:
@timeit def my_function():
To znamená, že funkce my_function() bude měřit dodací lhůty.
Dekorátor timeit lze použít k měření doby běhu všech částí kódu, včetně jednotlivých funkcí, tříd nebo dokonce jednotlivých řádků kódu.
Použití dekoru timeit vám umožňuje přesně změřit dobu provádění kódu a optimalizovat jej, abyste dosáhli maximálního výkonu.