Python Glossary English

все Python 3cProfileфункция

cProfile.run()

запуск профилировщика

Профилирует строку кода через exec() и печатает таблицу: сколько раз вызвана каждая функция и сколько времени в ней прошло.

Синтаксис

cProfile.run(command, filename=None, sort=-1)

Код выполняется в пространстве имён модуля __main__, поэтому локальные переменные вызывающей функции не видны: cProfile.run('sorted(data)') внутри main() даёт NameError — для них нужен runctx(). С filename таблица не печатается, а сохраняется в двоичный файл для pstats, а не в текст. sort='cumulative' сразу показывает, где тратится время с учётом вложенных вызовов.

Примеры

import cProfile
def slow():
    return sum(i * i for i in range(10000))
cProfile.run('slow()', sort='cumulative')  # → ? таблица вызовов, время зависит от машины
import cProfile
def main():
    data = list(range(1000))
    try:
        cProfile.run('sorted(data)')
    except NameError as e:
        print(e)  # → name 'data' is not defined
main()

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности