>
>
Первое впечатление от использования Int…

Андрей Карпов
Статей: 673

Первое впечатление от использования Intel Parallel Inspector

Экспериментировал с Intel Parallel Inspector в режиме диагностики ошибок работы с памятью. Могу сказать, что продукт и то, что он делает, мне крайне понравилось. Особенно понравилась прекрасно выполненная интеграция в Visual Studio и полноценная поддержка 64-битных проектов, что оценят пользователи Bounds Checker.

В основном я экспериментировал с проектом Viva64 и при этом смог обнаружить одну вполне серьезную ошибку.

Очень понравился графический интерфейс настроек режима запуска Parallel Inspector, просто, понятно:

Понравился индикатор, насколько данный вид анализа может замедлить выполнение программы. Мне так понравился подобный подход, дизайн и наглядность того, что следует ожидать, что я решил проверить точность этого индикатора на проекте Viva64. Конечно, выборка не репрезентативна, но все равно очень было интересно. Вот результаты запуска 64-битной debug-версии Viva64:

Режим запуска

Ожидаемое замедление, согласно показаниям на шкале Parallel Inspector

Полученное замедление, при тестировании проекта Viva64

Без Parallel Inspector

Замедления нет

(1.23 сек) - Замедления нет

"Does my target leak memory?"

В 2 - 20 раз

(17.70 сек) - 14.4 раз

"Does my target have memory access problems?"

В 10 - 40 раз

(72.57 сек) - 59 раз

"Where are the memory access problems?"

В 20 - 80 раз

(70.80 сек) - 57.6 раз

"Where are all the memory problems Inspector can find?"

В 40 - 160 раз

(404.82 сек) - 329.1 раз

Я считаю, что предположение о замедлении сделано достаточно точно, для случая, когда о проекте ничего не известно. Немного выбивается последний режим, но в анализаторе Viva64, в отличие от среднестатистической программы, очень большой объем операций связан как раз с выделением памяти при построении и анализе синтаксического дерева. Поэтому замедление больше ожидаемого совершенно естественно.

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

Подводя итог. Очень хороший инструмент. Рекомендую.