Андрей Светлов
Апрель 18, 2009 04:22:35
Хочу презентовать чудную штуку от Флетчера (который помимо всего прочего известен как автор PyOpenGL).
runsnakerun - визуализатор для собранной профайлером информации.
Установка тривиальная - easy_install runsnakerun
Затем запустить runsnake.
Если не получается и у вас не стоит setuptools - очень странно… Но поиск по PyPI поможет и в этом трудном случае.
Зачем нужен?
Я использую cProfile чтобы понять, где моя чудесная программа тормозит. profile тоже подойдет, но он гораздо медленней.
Сохраняю результат в какой-то output34.profile.
Дальше возникает вопрос - как его смотреть. Есть pstats - библиотека для просмотра. Довольно неплохая, но неочевидная. Отлично расширяемая и т.д. Но не очень подходящая для “первого взгляда”.
runsnakerun отлично все показывает - клацайте мышкой и смотрите на подсказки. Callers/Callee тоже присутствуют.
В общем - настоятельно рекомендую посмотреть. Очень удобная вещь.
В завершение хочу устроить маленький опрос: кто из читателей форума использует профайлер в своей работе? И как? Очень интересно.
P.S.
pstats - хорошее решение. Честно. Я наследуюсь от стандартного Stats и настраиваю вывод, фильтруя неинтересный мне мусор. Когда понял основной затык, он же bottle-neck. Позволяет быстро наблюдать за последствиями изменений в коде, направленными на оптимизацию.
j2a
Апрель 18, 2009 17:43:39
Это который рисует treemap?
Я профайлер почти не использую.
Андрей Светлов
Апрель 20, 2009 04:23:43
squaremap, если быть точным.
j2a, почему не пользуешься?
В web разработке не помогает и главное - оптимизировать SQL запросы?
P.S. Жду отзывов от других участников форума.
PooH
Апрель 20, 2009 05:24:17
Стыдно признаться, но я тоже не использую профайлер. А SQL оптимизирую глядя на план запроса.
j2a
Апрель 20, 2009 06:47:57
Андрей Светлов
j2a, почему не пользуешься?
В web разработке не помогает и главное - оптимизировать SQL запросы?
Сейчас на Питоне две legacy GUI-штуковины, (профайлер там не нужен), и обвязка для экспорта/импорта данных/печати отчетов. По загрузке ЦПУ я вижу, что производительность Питона сейчас не узкое место, а узкое – запросы к СУБД, эффективнее их оптимизировать/кэшировать и пр. Как увижу, что загрузка ЦПУ подползает к пределу – буду профайлить Питон код для оптимизации.
ZAN
Апрель 20, 2009 11:17:15
Андрей Светлов
В завершение хочу устроить маленький опрос: кто из читателей форума использует профайлер в своей работе? И как? Очень интересно.
Использую hotshot профайлер при запуске с nosetests.
Эти же данные, кстати, использую при генерации документации - строит callgraph, но, правда, пришлось пропатчить epydoc для этого, т.к. он понимает pstat только в формате profile.
ZZZ
Апрель 20, 2009 11:47:15
Андрей Светлов
В завершение хочу устроить маленький опрос: кто из читателей форума использует профайлер в своей работе? И как? Очень интересно.
Когда-то использовал стандартный profile… Но это было давно и не правда.
Ну и вот сейчас прихожу к тому, что оно скоро понадобиться и runsnakerun окажется в тему.
slav0nic
Апрель 21, 2009 18:45:59
обхожусь pstats/hotshot но использую очень редко, тк последнее время 85% пишу под веб
Андрей Светлов
Май 13, 2009 19:01:35
Опрос можно считать оконченым - достаточно времени прошло.
Занятно. Получается, что производительность Питона как языка никого не интересует - поскольку мало кто ее на самом деле мерял.
Впредь если опять начнется перебрасывание плюшками и выяснение, у кого быстрее - можно отсылать прямо сюда.
crchemist
Май 15, 2009 13:20:38
Андрей Светлов
Получается, что производительность Питона как языка никого не интересует
цікавить. просто більшість на цьому форумі пишуть під веб, тому і не потрібно профайлера. я час від часу використовую сProfile для того шоб подивитись які ф-ції найчастіше викликаються і скільки часу займають. Для маленьких функцій використовую timeit.