Python cProfile: как отфильтровать конкретные вызовы из данных профилирования?

Я начал профилировать сценарий, который имеет много sleep(n) заявления. В целом, я получаю более 99% времени, проведенного во время сна. Тем не менее, он иногда сталкивается с проблемами производительности в то время, когда он выполняет реальную работу, но соответствующие, интересные данные профилирования становится очень трудно идентифицировать, например, при использовании kcachegrind.

Есть ли способ, которым я могу внести в черный список определенные вызовы / функции из профилирования? В качестве альтернативы, как я могу отфильтровать такой вызов с последующей обработкой файла данных профилирования?

Я использую декоратор статистики профилей ( http://pypi.python.org/pypi/profilestats).

Спасибо

1 ответ

Решение

Вам нужно больше, чем просто исключать образцы во время сна (). Вам нужны оставшиеся образцы, чтобы рассказать вам что-то полезное. Это будет выборка из стека по настенным часам, суммирование процентов на уровне строки кода. Zoom - хороший инструмент для такого рода сэмплирования, и я надеюсь, что не слишком сложно игнорировать сэмплы, которые содержат определенную функцию.

Другие вопросы по тегам