CachegrindVisualizer 0.3 — 2.5D визуализация схемы работы и профилирование программы

Wicked

Новичок
Бага: .dot-файл не открывается в dotty (из поставки Graphviz).
Фикс: digraph "whatever" {
 

Develar

Новичок
этот элемент необязателен согласно документации. у меня в этой убогой созданной дебилами Vista dotty не открывает граф без ID, а с ID виснет.

http://graphviz.org/bugs/bugform.html

если очень надо, я могу и ставить ID, но раз программа dot работает согласно документации, то и dotty должна.
 

Develar

Новичок
0.4

* Дерево хранится теперь как "вложенные множества", а не "материализованный путь". Это стало апофеозом замечаний Wicked, оказывается, целое число может быть отрицательным - мне стыдно. Размер базы в 2 раза меньше. Построитель ест меньше памяти и быстрее работает.
* Запрос узлов и граней в построителе оптимизирован для minNodeCost = 0.
* Запрос узлов и граней оптимизирован: стоимость указанная пользователем в процентах пересчитывается в мс, что дает прирост как минимум в 4 раза (так как используется индекс).
* setlinewidth, arrowsize и color (hue и saturation) округляются до 2 знаков - меньше размер файла dot.
* Исправлена проблема "когда курсор стоит в поле ввода MNC, то при переключении на другое приложение (alt+tab) и обратно перезапускает построение".

-~{}~ 20.12.07 17:05:

0.4.1

* Возможность скрыть библиотечные функции. На (require|include)(_once)?, call_user_* и т. п. функции которые могут вызывать пользовательские это ограничение не действует (то есть Filter в SPL также может быть отражен в графе).
* fixed: обработка детей деструкторов, обработчиков сеансов и прочего что xdebug пишет вне main.

Есть одна известная бага, возникает в редком случае и при min node cost = 0, будет поправлено в следующей версии.

-~{}~ 20.12.07 21:09:

0.5 beta 1

* Размер внутренней базы теперь меньше исходного файла.
* Результирующий файл dot меньше в 2 и более раза.
* Построитель ест меньше памяти.

В следующей версии будет реализовано как построение графа, так и дерева. В чем разница между деревом и графом? Времени объяснить пока нет, получилось в результате грубой ошибки, но ощущение понравилось и решил оставить. Как сказал Wicked, — "дерево полезней для представления, как программа работает, тогда как граф полезней для профилирования".

-~{}~ 20.12.07 21:11:

и, да, некоторые сложные полученные сложным сочетанием параметров файлы dot не кушатся - "Error: Edge length 80807 larger than maximum 65535 allowed.
Check for overwide node(s)." Будет исправлено.

-~{}~ 21.12.07 10:49:

http://bugs.xdebug.org/bug_view_page.php?bug_id=0000342

-~{}~ 27.12.07 20:34:

0.5 http://cachegrindvisualizer.googlecode.com/files/CachegrindVisualizer0.5.air

Пожалуй, это лучшая версия CachegrindVisualizer с момента рождения.
Все. KCachegrind теперь далеко позади. Даже, можно сказать, содержит критическую ошибку с точки зрения человека, который изучает граф, а дело то в одной строчке. Узлы на графе теперь в том же порядке, в каком и были вызваны, в любом случае (граф из-за этого требования становится менее красивым и компактным, но это ухудшение заметно только эксперту в микроскоп). Также теперь CachegrindVisualizer имеет 4 типа группировки против 1,5 у KCachegrind.

* fixed: непосредственные дочерние узлы (т. е. функции) на графе отображены в том же порядке, в котором и были вызваны. Это ошибка не регрессия, она была в CachegrindVisualizer с рождения и до сих пор не исправлена в KCachegrind.
* Введены 3 типа группировки к уже имеющейся по функциям («Функции»): «Функции и вызовы», «Вызовы (дерево)», «Нет (дерево)». Документации пока нет, но http://cachegrindvisualizer.googlecode.com/files/grouping_example.png
* Из-за 3 новых типов группировки изменен алгоритм расчета размера ребра (ширина линии и размер наконечника) и цвета ребра (помимо изменения исходного значения была значительно улучшена и формула расчета):
calls — по summaryInclusivePercentage
no — по inclusivePercentage
functions — по percentage
functionsAndCalls — по maximumPercentage
 

Develar

Новичок
0.5.1

* улучшена формула расчета цвета.

-~{}~ 29.12.07 13:30:

Как думаете, ведь функцию include и ей подобные мы должны отображать как include, без имени файла? А так получается мы рассматриваем каждое употребление этой семейки функций как разные. Как вам удобнее?
 

fixxxer

К.О.
Партнер клуба
Автор оригинала: Wicked
http://cachegrindvisualizer.googlecode.com/files/symfony_calls.png
вот так выглядит результат профилирования Symfony с пустым кэшем. Вид сделан с помощью Grouping: calls, Minimal node cost = 1.
о! вот надо было сразу картинку показывать. в первом постинге треда.
сразу вижу что это круто :) а многабукф читать лениво. =)

надо будет поиграться
 

fixxxer

К.О.
Партнер клуба
ой, а можно content-type на png человеческий?
или на гуглкоде никак?
 

Develar

Новичок
fixxxer
content-type отдается. Это из-за Content-Disposition: attachment; - вероятно, нужно для счетчика скачиваний. Так что в google code никак, у программистов google не только тут кривые руки, к сожалению.

-~{}~ 01.01.08 20:25:

http://cachegrindvisualizer.googlecode.com/files/CachegrindVisualizer-0.5.2.air
0.5.2
* Значительное снижение размера файла dot (особенно при минимальной стоимости узла меньшей 1) (на тестовом графе на 2 МБ — с 8 до 6).
* Явное задание шрифта — Trebuchet MS, вместо шрифта по умолчанию Times-Roman. В данном случае гораздо лучше использование шрифта без засечек. Адрес для жалоб все тот же — http://code.google.com/p/cachegrindvisualizer/issues/list :)
* Уменьшен размер шрифта на 2. Узел 12, ребро 10, граф (влияет на размер заголовка) 20.
 

Develar

Новичок
phpdev2007
На днях будет seamless install для air runtime, но и сейчас проблем-то - скачиваете все, что в блоке Links на главной странице проекта (кроме xdebug - он то наверное уже есть у вас). Да, секс сравним с установкой из исходника vs порт, но...

-~{}~ 06.01.08 16:58:

если есть конкретные проблемы - пишите, могу даже асю дать.
 

phpdev2007

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

Develar

Новичок
>> плюс маленький ридми файл по установке, думаю пользователей бы проги увеличилось бы
phpdev2007
у меня куча работы, и, к сожалению, выкроить время пока не удалось, тем более что явных проблем я не вижу - Wicked даже из исходников сам себе все компилит, поэтому если есть конкретные проблемы/вопросы - отвечу мгновенно.

-~{}~ 09.01.08 18:43:

http://code.google.com/p/cachegrindvisualizer/wiki/ruInstallation
информация эта есть и в шапке топика, так в чем тогда проблемы?

-~{}~ 22.01.08 21:40:

0.6 beta 1

Как и ожидалось, основная проблема в разработке возникнет из-за выбора SQLite как СУБД, так как решение сколь-нибудь сложной задачи исключительно в ее рамках невозможно, но, тем не менее, это все равно лучше, чем писать хранилище с нуля.

* Реализован FR: скрытие указанных функций. На удивление FR оказался весьма сложным и гробящим всю программу, но попросил товарищ, которому было невозможно отказать. Из-за этого данная версия бета, тестируйте.
* fixed: фильтр inclusiveTime в очень редком случае работал некорректно при группировке по функциям или по функциям и узлам.

-~{}~ 23.01.08 13:52:

и, кстати, из-за баги в новом flex sdk не работает управление вкладками, так это для меня не критично - я напишу workaround через недельку - но если кому надо прям сейчас - пишите.
 

StUV

Rotaredom
Develar
гоняем новый функционал
если будут баги - обязательно отпишемся
 

Develar

Новичок
0.6
* fixed: ошибка парсера из-за ошибки в алгоритме чтения файла блоками с конца в силу которой на границах блоков оказывались лишние символы перевода строки. исправление пока что грязное, но работает. (спасибо Nike Gurin за сообщение). Ошибка проявлялась только на специфичных файлах, в частности, отчет об ошибке прислали для 80 МБ файла с кучей дешевых детей.
* fixed: применение сохраненного профиля с настроенным "скрытие указанных функций" к иному файлу приводило к ошибке построителя.
 

shp

Новичок
Develar, скачал AdobeAIR 1.0, CachegrindVisualizer-0.6, и при попытке инсталляции CachegrindVisualizer'а AIR выдает такое сообщение: "This application requires a version of Adobe AIR which is no longer supported. Please contact the application author for an updated version". Я так понимаю, CachegrindVisualizer под этой версией AIR'а пока не работает?
 

shp

Новичок
Спасибо большое! Пока все вроде бы нормально. Только вот с расширением .cg - небольшие траблы: сам CGV открывается, а файл - нет. Приходится перетаскивать файл дрэг-энд-дропом или открывать через меню. С zgrviewer, кстати, все - с точносью до наоборот :)

P.S. А сложно вообще добавить отображение времени выполнения непосредственно в CGV (для объектов из левой панели)? Т.е. примерно так, как это сделано в WinCacheGrind?
 

Develar

Новичок
>> Только вот с расширением .cg - небольшие траблы: сам CGV открывается, а файл - нет
проверю сборку (все мои рабочие станции на linux 64bit, а на серверной фряхе лениво поднимать - поэтому только завтра)

>> А сложно вообще добавить отображение времени выполнения непосредственно в CGV (для объектов из левой панели)
это вы о "На текущий момент CachegrindVisualizer ориентирован исключительно на построение графа, вспомогательные/альтернативные таблицы данных и графики (карты, диаграммы, гистограммы и т. п.) не реализованы, — и не будут без соответствующих запросов, так как меня вполне удовлетворяет граф (но парсер учитывает всю информацию, так что никакой работы помимо реализации желаемого графика не потребуется)"? да нет - дня 2, но в ближайшие две/четыре недели без сильной мотивации я времени не найду.
 
Сверху