cProfile и Python: Нахождение определенного номера строки, на котором код проводит большую часть времени

Другое голосование за RedGate SQL Выдерживает сравнение

, http://www.red-gate.com/products/SQL_Compare/index.htm

не хотел бы жить без него!

Редактирование: Извините, кажется, что это только для SQL Server. Все еще - если бы у каких-либо пользователей SQL Server есть тот же вопрос, я определенно рекомендовал бы этот инструмент.

5
задан Piyush Jain 30 September 2009 в 20:46
поделиться

3 ответа

Существует профилировщик строк на Python, написанный Робертом Керном.

3
ответ дан 14 December 2019 в 08:55
поделиться

cProfile не отслеживает номера строк в функции; он отслеживает только номер строки, в которой была определена функция.

cProfile пытается дублировать поведение профиля (который является чистым Python). Профиль использует pstats для хранения данных от выполнения, а pstats сохраняет только номера строк для определений функций, а не для отдельных операторов Python.

Если вам нужно чтобы выяснить более детально, что кушает все время,

2
ответ дан 14 December 2019 в 08:55
поделиться

Предположим, количество времени, которое «съедают», равно некоторому числу, например, 40%. Затем, если вы просто прервете программу или приостановите ее в случайное время, вероятность того, что вы увидите ее, составляет 40%, точно выставленную в стеке вызовов. Сделайте это 10 раз, и на 4 образцах +/- вы увидите это.

Это объясняет, почему это работает. Это пример.

2
ответ дан 14 December 2019 в 08:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: