профайлер фирмы TracePoint позволяет подробно разобраться, что замедляет работу приложений на Visual Basic

 

Программа профайлер HiProf 2.0 фирмы TracePoint Technology исследует внутреннее устройство виртуальной машины Visual Basic, функции из набора интерфейсов прикладного программирования Win 32 и представляет подробную информацию о рабочих характеристиках приложений для ОС Windows 95 и Windows NT, построенных с использованием систем программирования Visual Basic и Visual C++ корпорации Microsoft.

HiProf 2.0 генерирует графические представления структуры программы с указанием времен исполнения

Последняя бета-версия программы HiProf 2.0, начало коммерческого распространения которой намечено на 1 ноября (по цене $249), показалась нам в ходе проведенных в Тестовом центре PC Week Labs испытаний самым интуитивно ясным из всех когда-либо виденных вспомогательных средств анализа. Этот хорошо продуманный инструмент предлагает разработчикам на Visual Basic чрезвычайно важные возможности для программирования вычислительно сложных процессов, помогающие добиться максимальной производительности.

 

HiProf работает с инструментированными файлами, т. е. эта система готовит свои собственные версии исполняемых программ, снабженные расширениями и дополнениями, необходимыми для анализа иерархических отношений между различными модулями. С помощью хорошо продуманной и весьма доступной для понимания утилиты-мастера среда HiProf направляет действия разработчика в ходе подготовки файла к проведению измерений. Мы нашли представления данных HiProf более ясными и естественными, чем те, что используются в системе VTune корпорации Intel, и сравнимыми по степени проработки с соответствующими элементами среды Visual Quantify корпорации Rational Software (которая выполняет для виртуальной Java-машины корпорации Microsoft примерно те же функции, что HiProf для виртуальной машины Visual Basic).

 

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

 

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

 

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

 

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

 

Подобно Visual Quantify, HiProf использует специальные графические представления, помогающие быстрее уяснить особенности поведения программы. В Visual Quantify это  -  представляющий различные последовательности исполнения граф, на котором можно выделить наихудший маршрут, а в HiProf для той же цели применяются секторные диаграммы. Используемый в HiProf вариант представления подчеркивает различие между функциями, расходующими много времени сами по себе, и теми, время выполнения которых определяется в основном вызовами подчиненных по иерархии модулей.

 

В частности, HiProf 2.0 привлекает внимание разработчика к тому, что в принятой в программе терминологии называется Critical Edge (критическими точками). Это точки обращения к подпрограммам, время работы которых превышает определенный процент от общего. Для отображения точек Critical Edge применяется несколько представлений.

 

Если доступен исходный текст, HiProf 2.0 позволяет легко перейти от измерений рабочих времен программы к соответствующим фрагментам программного кода. Но что восхитило нас в этом профайлере значительно больше  -  это его возможности работы с динамически компонуемыми библиотеками (DLL) сторонних производителей, исходные тексты которых недоступны. Для всех открытых для вызова извне функций обеспечивается измерение времени работы с использованием временных меток, что позволяет оценить вклад различных DLL-библиотек в общую производительность программы.

 

HiProf 2.0 для пробной эксплуатации можно скопировать с Web-узла производителя по адресу: www.tracepoint.com.

 

Питер Коффи (PC Week Labs)

 

Резюме для руководителей

 

Разработчикам, использующим систему программирования Visual Basic для создания вычислительно сложных приложений, от которых требуется максимальная производительность, имеет смысл обратить внимание на готовящуюся к выпуску модернизированную версию средства анализа фирмы TracePoint, которая распространяет на среду Visual Basic возможности профайлера HiProf C++.Методика оценки: www.pcweek.com/reviews/meth.html.

 

Бета-версия HiProf 2.0.TracePoint Technology, Сан-Хосе, шт. Калифорния,

 

(408) 283-5350, www.tracepoint.com.

 

Интуитивно ясные графические представления; разнообразие видов измерений; простая процедура создания проекта.

 

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