TGViewer
Python RU Python RU @pro_python_code · 12.3K subscribers
Post #434 2.69K
⏱ Измерение времени выполнения кода

Часто на форумах и чатах возникают горячие споры о том, какой же вариант кода из нескольких выполняется быстрее. К счастью, в Python есть модуль timeit, который позволяет быстро замерить и сравнить производительность кода.

📎 Пример: определим, какой вариант кода быстрее:

>>> import timeit
>>> timeit.timeit('"-".join(str(n) for n in range(100))', number=10000)
0.23387694358825684
>>> timeit.timeit('"-".join([str(n) for n in range(100)])', number=10000)
0.20793890953063965
>>> timeit.timeit('"-".join(map(str, range(100)))', number=10000)
0.2012779712677002

Оказалось, что третий.

Если в тестируемом кусочке кода вам потребуется обратиться к переменным или модулям из глобальной зоны видимости, то удобно воспользоваться параметром globals и присвоить его результаты функции globals().

>>> import math
>>> my_const = 6.28
>>> timeit.timeit('math.cos(my_const)', globals=globals())
0.12635547306854278

Можно также передавать в timeit имя функции (без параметров):

>>> import timeit
>>> def foo(): "-".join(map(str, range(1000)))
...
>>> timeit.timeit(foo, number=1000)

📎 timeit можно вызвать из терминала:

python -m timeit -s "from math import sqrt" -n 10000 "x = sqrt(25)"

После ключа -s идет строка инициализации; она выполнится единожды. Ключ -n установит число итераций теста (рекомендуется не меньше 1000).

⚠️ Помните, что результаты тестов могут отличаться в зависимости от вашего компьютера, ОС, версии Python, фаз луны и много еще чего. Также советуем вам не увлекаться чрезмерной оптимизацией во вред читаемости кода.

@pro_python_code
  • 👍 15
More from @pro_python_code
  1. Oct 11, 2026Что нового в Python 3.15? Ленивые импорты, frozendict и JIT быстрее на 12% Python 3.15 выш…
  2. Oct 6, 2026🐍 Python умеет сравнивать числа как в математике Проверку диапазона можно записать короче…
  3. Oct 4, 2026Hugging Face исследовали multi-harness RL: обучение с подкреплением сразу через Claude Cod…
  4. Oct 1, 2026DeepSeek Harness вышел на десктоп: плагины без терминала и задачи по расписанию DeepSeek в…
  5. Sep 30, 2026Пишем игру на Python: неоновая аркада с разбором кода и ИИ Pygame часто считают библиотеко…
  6. Sep 29, 2026photo post
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →