2013-03-09 2 views
1

Для любого конкретного кода, есть ли способ легко получить разбивку того, сколько времени потребовалось для выполнения каждой строки?В Python, каков наилучший способ определить, сколько времени требуется для выполнения каждой строки кода?

+2

[26.4 Профилировщики Python] (http://docs.python.org/2/library/profile.html) – Wrikken

ответ

2

в оболочке, вы можете запустить модуль Cprofile как сценарий:

python -m cProfile nameofscriptfile.py 
2

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

1

Вот быстрый и грязный способ.

Шаг 1. Запустите его и получите общее время в секундах. Если это действительно быстро, оберните временный внешний цикл вокруг него, чтобы он занял, по крайней мере, несколько секунд.

Шаг 2. Получите кучу случайных выборок стека, as in this example. Вы можете сделать это за несколько прогонов, если короткое время выполнения.

Любая интересующая вас строка появляется на некоторой части образцов. Если, например, оно появляется на 3 из 10 выборок, это означает, что в течение 30% (примерно) общего времени это утверждение выполнялось.

Смежные вопросы