Отладка и профилирование¶Debugging and profiling
Эти библиотеки помогают в разработке на Python: отладчик позволяет пошагово выполнять код, анализировать стековые кадры и устанавливать точки останова и т.д., а профилировщики запускают код и предоставляют детальную разбивку времени выполнения, что позволяет выявить узкие места в программах. События аудита обеспечивают прозрачность поведения во время выполнения, которое в противном случае потребовало бы интрузивной отладки или внесения исправлений.
- Таблица событий аудитаAudit events table
bdb– фреймворк отладчикаbdb – Debugger frameworkfaulthandler– дамп трассировки Pythonfaulthandler – Dump the Python traceback- Дамп трассировкиDumping the traceback
- Дамп стека CDumping the C stack
- Состояние обработчика сбоевFault handler state
- Дамп трассировок по тайм-аутуDumping the tracebacks after a timeout
- Дамп трассировки по сигналу пользователяDumping the traceback on a user signal
- Проблема с файловыми дескрипторамиIssue with file descriptors
- ПримерExample
pdb– отладчик Pythonpdb – The Python Debuggerprofiling– профилировщики Pythonprofiling – Python profilers- Введение в профилированиеIntroduction to profiling
- Выбор профилировщикаChoosing a profiler
- Быстрый стартQuick start
- Понимание вывода профилировщикаUnderstanding profile output
- Совместимость с устаревшим кодомLegacy compatibility
profiling.tracing– детерминированный профилировщикprofiling.tracing – Deterministic profiler- Что такое детерминированное профилирование?What is deterministic profiling?
- Интерфейс командной строкиCommand-line interface
- Примеры программного использованияProgrammatic usage examples
- Справочник модуляModule reference
- Использование пользовательского таймераUsing a custom timer
- ОграниченияLimitations
profiling.sampling– Статистический профилировщикprofiling.sampling – Statistical profiler- Что такое статистическое профилирование?What is statistical profiling?
- Краткие примерыQuick examples
- КомандыCommands
- Настройка сэмплированияSampling configuration
- Частота и длительность сэмплированияSampling rate and duration
- Выбор потоковThread selection
- Режим блокировкиBlocking mode
- Специальные кадрыSpecial frames
- Профилирование с учётом опкодовOpcode-aware profiling
- Статистика в реальном времениReal-time statistics
- Профилирование подпроцессовSubprocess profiling
- Эффективность сэмплированияSampling efficiency
- Режимы профилированияProfiling modes
- Форматы выводаOutput formats
- Рабочий процесс записи и воспроизведенияRecord and replay workflow
- Режим реального времениLive mode
- Профилирование с учётом асинхронностиAsync-aware profiling
- Интерфейс командной строкиCommand-line interface
pstats– Статистика для профилировщиковpstats – Statistics for profilerstimeit– Измерение времени выполнения небольших фрагментов кодаtimeit – Measure execution time of small code snippetstrace– Трассировка или отслеживание выполнения операторов Pythontrace – Trace or track Python statement executiontracemalloc– Трассировка выделений памятиtracemalloc – Trace memory allocations