TGViewer
Библиотека питониста | Python, Django, Flask Библиотека питониста | Python, Django, Flask @pyproglib · 37.4K subscribers
Post #7748 1.99K
Python профилировка: где теряется время в коде

Код работает медленно, но непонятно где. Вместо того чтобы гадать — есть инструменты. Шпаргалка по всем основным.

Быстрый замер — time
import time

start = time.perf_counter()
my_function()
print(f"{time.perf_counter() - start:.4f}s")

Для грубой оценки. perf_counter() точнее чем time()


🔬 Точное сравнение — timeit
import timeit
timeit.timeit("[x**2 for x in range(1000)]", number=10000)

# В Jupyter:
%timeit my_function()


🔍 Где тормозит — cProfile
import cProfile
cProfile.run("my_function()")

# Сохранить для анализа:
cProfile.run("my_function()", "output.prof")

# В Jupyter:
%prun my_function()

Смотреть на tottime (время только в функции) и cumtime (с учётом вызовов внутри)


📋 Какая строка тормозит — line_profiler
# pip install line_profiler

@profile
def my_function():
...

kernprof -l -v script.py

# В Jupyter:
%load_ext line_profiler
%lprun -f my_function my_function()


💾 Память — memory_profiler
# pip install memory_profiler

@profile
def my_function():
...

python -m memory_profiler script.py

# В Jupyter:
%load_ext memory_profiler
%memit my_function()


📊 Визуализация — snakeviz
# pip install snakeviz
snakeviz output.prof
# Откроет браузер с интерактивной диаграммой


Когда что использовать

— Где тормозит? → cProfile + snakeviz
— Какая строка? → line_profiler
— A быстрее B? → timeit
— Память утекает? → memory_profiler
  • ❤ 6
  • 🔥 2
  • 🤩 1
More from @pyproglib
  1. Sep 20, 2026👻 94% токенов уходят не на код Анализ запусков показал: основная часть токенов уходит на…
  2. Sep 19, 2026📚Напоминаем про наш полный курс «Самоучитель по Python для начинающих» Мы написали и собр…
  3. Sep 15, 2026😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как трати…
  4. Sep 15, 2026⏱️ Справочник по Big-O в Python Для тех, кто хочет писать не просто работающий, а эффектив…
  5. Sep 14, 2026🤪 Если бы можно было задать один вопрос про AI в разработке — что бы вы спросили? Как выб…
  6. Sep 13, 2026🌸 Вселенная намекает: пора уже начать этот курс С 14 сентября цены в Proglib Academy выра…
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 →