Python cProfile: как отфильтровать конкретные вызовы из данных профилирования?
Я начал профилировать сценарий, который имеет много sleep(n)
заявления. В целом, я получаю более 99% времени, проведенного во время сна. Тем не менее, он иногда сталкивается с проблемами производительности в то время, когда он выполняет реальную работу, но соответствующие, интересные данные профилирования становится очень трудно идентифицировать, например, при использовании kcachegrind.
Есть ли способ, которым я могу внести в черный список определенные вызовы / функции из профилирования? В качестве альтернативы, как я могу отфильтровать такой вызов с последующей обработкой файла данных профилирования?
Я использую декоратор статистики профилей ( http://pypi.python.org/pypi/profilestats).
Спасибо
1 ответ
Вам нужно больше, чем просто исключать образцы во время сна (). Вам нужны оставшиеся образцы, чтобы рассказать вам что-то полезное. Это будет выборка из стека по настенным часам, суммирование процентов на уровне строки кода. Zoom - хороший инструмент для такого рода сэмплирования, и я надеюсь, что не слишком сложно игнорировать сэмплы, которые содержат определенную функцию.