- Подписка на печатную версию:
- Подписка на электронную версию:
- Подшивки старых номеров журнала (печатные версии)
LXF106:Review3
Материал из Linuxformat.
UndoDB 2.2
- Грэм Моррисон обнаружил, что с UndoDB он, наконец, сможет разобраться, как работает его собственный запутанный и нелогичный код – да вот, хоть Brain Party отладить…
Самое главное | |
Отладчик, способный повернуть выполнение программы вспять. | |
См. также | GDB |
Разработчик | Undo Software |
Сайт | http://undo-software.com |
Цена | Бесплатно для некоммерческого использования; лицензия на 1 год – $295 без НДС, неограниченная лицензия – $495 |
Вердикт Linux Format | |
Функциональность | 9/10 |
Производительность | 8/10 |
Простота использования | 7/10 |
Оправданность цены | 9/10 |
Ради малых приложений обновляться ни к чему, в противном случае – необходимо. | |
Рейтинг | 8/10 |
Мы уже встречались с UndoDB 2.0 в прошлом году – в LXF95. Версия 2.2 обещает значительный прирост скорости, а также возможность присоединения отладчика к запущенному процессу. UndoDB всегда был «копушей», что совсем неудивительно. Ведь это сродни алхимии: часы выполнения программы поворачиваются вспять.
Отладка программ весьма обременительна для системы – процессор обрабатывает дополнительный код, привязанный к исполняемой программе, а тут еще отладчик цепляется за каждую строку, словно репейник. Запуск графического приложения в GDB, отладчике, которым пользуется большинство разработ- чиков открытого ПО, снижает скорость работы программы примерно в два раза. С UndoDB 2.0 то же графическое приложение показало лишь 40 % обычной производительности.
Причина столь значительного различия – рабочая нагрузка. UndoDB делает значительно больше, чем обычный отладчик. Допустим, переменная number, равная 123 в строке 7, превращается в 321 в строке 12. При трассировке с помощью GDB мы не сможем вытащить ее старое значение без перезапуска отлаживаемой программы – это улица с односторонним движением, а потому некоторые ошибки бывает очень трудно обнаружить. С помощью UndoDB, программу можно пройти в любом направлении и проследить все изменения так, словно они происходят во время линейного выполнения. Это возможно потому, что отладчик сохраняет снимки состояния программы на каждом шаге, а это серьезная нагрузка на систему. Но результат того стоит, так как без этой способности на исправление некоторых ошибок можно потратить полжизни.
Speed++
Чтобы убедиться в том, что увеличение скорости в новой версии – не пустые слова, мы сравнили оба варианта. Через обе версии мы пропустили несколько разных программ – от инструментов командной строки до полноценных графических приложений – и отметили огромную разницу. Приложения с небольшой нагрузкой на процессор (консольные утилиты) работали практически одинаково, в некоторых случаях тест выиграла даже старая версия.
По мере роста ресурсоемкости преимущество UndoDB 2.2 становились все более заметным. Мы попробовали XFractInt, простую интерактивную фрактальную программу для X Window. В UndoDB 2.0 она едва шевелилась. Рендеринг фрактального рисунка занимал около 11 секунд, а об интерактивности можно было забыть. Загрузка процессора делала мышь почти бесполезной, и хотя с точки зрения отладки все прошло безупречно, тест программы фактически стал тестом нашего терпения. С новой версией все было совсем иначе. Рендеринг того же фрактала занимал всего секунду, а интерактивность не прерывалась на протяжении всего теста. Проблемы возникали лишь при операциях с границами окна. В остальном UndoDB 2.2 была почти вдесятеро быстрее предшественницы.
Программа работает все еще медленнее GDB, но разницу заметить уже гораздо труднее. Поэтому UndoDB теперь можно рекомендовать для отладки графических программ, а если вы когда-то отказались от него из-за медлительности – имеет смысл вернуться и попробовать еще раз. Над этой программой всегда висела проблема выбора между уникальными способностями к отладке и беспримерной ресурсоемкостью. С новой версией этот выбор уже не столь мучителен. LXF