timeit

Програмиране с Python

Курс във Факултета по Математика и Информатика към СУ

timeit

На днешната лекция ваш колега попита за benchmark/performance тестове и споменахме за timeit. Тъй като вече се предполагаше да сме приключили със сбирката ни (извинения за което), нямахме време да ви покажем как се използва тази библиотека.

Да кажем, че искаме да сравним три начина за сливане на символни низове:

>>> import timeit
>>> timeit.timeit('"-".join(str(n) for n in range(100))', number=10000)
0.3018611848820001
>>> timeit.timeit('"-".join([str(n) for n in range(100)])', number=10000)
0.2727368790656328
>>> timeit.timeit('"-".join(map(str, range(100)))', number=10000)
0.23702679807320237

Обърнете внимание, че подаваме символен низ с питонски код, за да се интерпретира изцяло под контролна на timeit. Библиотеката ни дава алтернативен вариант за използване директно през командния ред:

$ python -m timeit '"-".join(str(n) for n in range(100))'
10000 loops, best of 3: 30.2 usec per loop
$ python -m timeit '"-".join([str(n) for n in range(100)])'
10000 loops, best of 3: 27.5 usec per loop
$ python -m timeit '"-".join(map(str, range(100)))'
10000 loops, best of 3: 23.2 usec per loop

За повече информация, както винаги, можете да се допитате до документацията: timeit — Measure execution time of small code snippets