Сейчас я использую cProfile, но мне утомительно писать код pstats только для запроса статистических данных.
Я ищу визуальный инструмент, который показывает, что делает мой код Python с точки зрения процессорного времени и распределения памяти.
Некоторые примеры из мира Java - visualvm и JProfiler .
Я знаю о KCachegrind для Linux, но я бы предпочел что-нибудь, что я могу запустить на Windows / Mac без установки KDE.
python
user-interface
profiling
profiler
Фредерик
источник
источник
Ответы:
Мы с другом написали программу просмотра профилей Python под названием SnakeViz, которая запускается в веб-браузере. Если вы уже успешно используете RunSnakeRun, SnakeViz может не добавить такой ценности, но SnakeViz намного проще установить.
Изменить: SnakeViz поддерживает Python 2 и 3 и работает во всех основных системах.
источник
Я в курсе только RunSnakeRun .
Некоторое время назад также были разговоры об интегрированном профилировщике в PyDev (Eclipse), но я не знаю, увидит ли это когда-нибудь свет.
Обновление: к сожалению, похоже, что RunSnakeRun больше не поддерживается, и он не поддерживает Python 3.
источник
Я использую gprof2dot.py. Результат выглядит так . Я использую эти команды:
Вам необходимо установить graphviz и gprof2dot.py . Вам может понравиться удобный сценарий оболочки .
источник
Spyder также предоставляет довольно красивый графический интерфейс для cProfile:
источник
Инструменты Python для Visual Studio содержат очень хорошо сделанный графический профилировщик: http://www.youtube.com/watch?v=VCx7rlPyEzE&hd=1
http://pytools.codeplex.com/
источник
Этот человек создал графический профиль, описанный здесь . Может быть, вы могли бы использовать это как отправную точку для своей работы.
источник
KCacheGrind включает версию под названием QCacheGrind, которая работает в Mac OS X и в Windows .
источник
apt-get install kcachegrind
установить всего 3 библиотеки, относящиеся к KDE.apt install kcachegrind
хочет установить 102 пакета, включая ~ 40 библиотек KDE.ubuntu:xenial
может быть в три раза больше, но это для среды разработки, и я почти не вижу в этом проблемы. И на самом делеapt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances --no-pre-depends kcachegrind | grep kde | grep Depends | sort -u | wc -l
говорит только 13.Попробуйте Snakeviz. Очень проста в установке (через pip) и основана на браузере.
https://jiffyclub.github.io/snakeviz/
источник
Python Call Graph генерирует картинки, очень похожие на те, что в ответе maxy . Он также показывает общее время для каждой функции, по какой-то причине это не отражено в примерах графиков.
источник
Я написал инструмент визуализации на основе браузера, profile_eye , который работает с выводом gprof2dot .
gprof2dot отлично справляется с выводом многих инструментов профилирования и отлично справляется с размещением графических элементов. Окончательный рендеринг представляет собой статичную графику, которая часто очень загромождена.
Используя d3.js , можно удалить большую часть этого беспорядка за счет относительного выцветания несфокусированных элементов, всплывающих подсказок и искажения «рыбий глаз» .
Для сравнения см визуализации profile_eye в о каноническом примере используется gprof2dot . В частности, для Python см. Пример вывода cProfile .
источник
Рассмотрим pyflame + flamegraph
Pyflame: профилировщик Ptracing для Python + flamegraph
https://github.com/uber/pyflame
Вы можете отслеживать запущенный процесс Python с помощью pyflame.
источник
Я использовал plop и обнаружил, что он очень легкий. Дает быстрое представление о производительности.
источник