Подтвердить что ты не робот

Профилирование инструментов визуализации?

Мне нужно отображать информацию профилирования, извлеченную из глубоко внедренного CPU, представляя ее так, как могут действовать другие разработчики в моей команде. Данные профилирования представляют собой моментальный снимок счетчика циклов при входе и выходе каждой функции, поэтому у нас есть график вызовов, аннотированный с точностью до микросекундного времени. Я бы предпочел не просто выкидывать имена функций и время, например gprof, я ищу что-то легче понять и действовать.

Кто-нибудь работал с особенно хорошим инструментом для профилирования (на любой платформе), что упростило определение областей кода для бурения? Я ищу вдохновляющий пример, чтобы следить за отображением графика вызовов, но если есть хороший инструмент с форматом ввода, я могу массировать свои данные, чтобы использовать его. Я мог бы использовать Windows, Linux или MacOS X для запуска средства визуализации.

Профилирующая статья о IBM DeveloperWorks привела меня к GraphViz, с профилирование пример на их сайте. Если запретить другое предложение здесь, я буду использовать GraphViz и воспроизвести их пример профилирования.

4b9b3361

Ответ 1

Другим опрятным инструментом для визуализации профилированных данных является gprof2dot.py python script. Его можно использовать для визуализации нескольких разных форматов: "Это Python script, чтобы преобразовать выходные данные из профилей prof, gprof, oprofile, Shark, AQtime и python в точечный граф". Вот как выглядит вывод:

http://jrfonseca.googlecode.com/svn/wiki/gprof2dot_small.png

Ответ 2

Я использую Kprof http://kprof.sourceforge.net/

он старый, но я никогда не нашел лучшего инструмента для проверки результатов из gprof.

Ответ 3

Как насчет "GTKWave"? Но вы должны вставить зонд в свой код.

Ответ 4

Valgrind делает профилирование (и многое другое), и есть GUIs для визуализации.

Ответ 5

Я предлагаю вам отказаться от gprof + graphviz для OProfileUI, если у вас нет выбора.

Ответ 6

IE 8b2 предлагает простой дисплей дерева вызовов для javascript, который, по моему мнению, намного полезнее графика GraphViz.

График GraphViz замечателен для визуализации дерева вызовов, но очень сложно визуализировать проблемы синхронизации (IMHO - более важные данные).

** Редактирование: я подумал, что стоит отметить, что все предложенные инструменты используют дерево с сеткой для визуализации дерева вызовов. Это позволяет вам видеть структуру вызова, не преуменьшая данные синхронизации, как я полагаю, вы делаете с графиком GraphViz. *

Ответ 7

Вы можете использовать Senseo, плагин для Eclipse. Он показывает вам производительность, распределение памяти, созданные объекты, время, выведенные фактические методы, наведите указатель на вызовы методов или вызовы, вызовите дерево контекстов, проводник пакетов и т.д.

Ответ 8

JetBrains dotTrace (есть пробная демонстрация, с которой вы можете играть). Он организует стеки вызовов и может легко находить проблемы. Имеет множество фильтрующих возможностей. Очень легко ориентироваться и находить то, что вы ищете.

Ответ 9

Я написал инструмент визуализации на основе браузера, profile_eye, который работает с выходом gprof2dot.

gprof2dot отлично справляется с большим количеством профилей для профилирования и отлично справляется с размещением графического элемента. Окончательный рендеринг - статическая графика, которая часто очень захламлена.

Используя d3.js, можно удалить большую часть этого беспорядка, путем относительного затухания несфокусированных элементов, всплывающих подсказок и искажение рыбий глаз.

Для сравнения см. profile_eye visualization канонического примера используемого gprof2dot.