Профилирование только тех пространств имен, которые мне нужны с VS2010 - PullRequest
2 голосов
/ 18 февраля 2011

vsinstr.exe имеет возможность включать только те пространства имен, которые необходимо профилировать.

С помощью этой опции я могу получить файл vsp.

cl /Zi helloclass.cpp /link /Profile
vsinstr helloclass.exe /include:Fpga::*
vsperfcmd /start:trace /output:trace.vsp
helloclass
vsperfcmd /shutdown

Однако он по-прежнему содержит пространства имен std::.

enter image description here

ДОБАВЛЕНО

Я пробовал с / exclude: std :: *, и я получаю слишком много функций, включая std::. enter image description here

Что может быть не так?

Ответы [ 2 ]

1 голос
/ 07 января 2016

Согласно https://msdn.microsoft.com/en-us/library/ms182402%28v=vs.100%29.aspx vsinstr.exe для VS 2010 (и до 2015 года) не поддерживает /include для покрытия кода.Таким образом, единственный способ очистить результаты - это использовать /exclude:std::*.

. Вы также можете проверить, какие функции будут задействованы до самого процесса инструментария, и сэкономить свое время, используя параметр /dumpfuncs, как показано ниже:*

vsinstr.exe /dumpfuncs /exclude:std::* /exclude:`std::* > foo.txt
1 голос
/ 18 февраля 2011

Согласно http://msdn.microsoft.com/en-us/library/ms182402%28v=vs.80%29.aspx

/include не принимает подстановочные знаки, попробуйте использовать /exclude:std::*

РЕДАКТИРОВАТЬ: попробуйте добавить /exclude:::__* или /exclude:__*, чтобы избавиться от глобальных функций пространства имен, начиная с __. Не проверял это, и документация не ясна, но стоит попробовать.

...