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