Přejít na hlavní obsah

Jak měřit běh kódu v Pythonu: jednoduché způsoby

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.