Для MS VC 7.1 и выше имеется инструментальный (точный по функциям) профилировщик, который называется MicroProfiler. Вы можете получить его здесь (x64) или здесь (x86) . Он не требует каких-либо изменений или дополнений в вашем коде и способен отображать статистику функций с вызывающими и вызываемыми пользователями в режиме реального времени без необходимости закрывать приложение / останавливать процесс профилирования.
Он интегрируется с VisualStudio, поэтому вы можете легко включить / отключить профилирование для проекта. Также возможно установить его на чистую машину, для этого нужно только, чтобы информация о символах находилась вместе с профилируемым исполняемым файлом.
Этот инструмент полезен, когда статистическая аппроксимация из профилировщиков выборки, таких как Very Sleepy, недостаточна.
Грубое сравнение показывает, что он превосходит AQTime (когда он вызывается в инструментах, запуск на уровне функций). Следующая программа (полная оптимизация, отключение встраивания) работает в три раза быстрее, когда микропрофилировщик отображает результаты в режиме реального времени, чем при простом сборе статистики AQTime:
void f()
{
srand(time(0));
vector<double> v(300000);
generate_n(v.begin(), v.size(), &random);
sort(v.begin(), v.end());
sort(v.rbegin(), v.rend());
sort(v.begin(), v.end());
sort(v.rbegin(), v.rend());
}