Программная вставка меток профилирования - PullRequest
10 голосов
/ 30 ноября 2010

Я использую Профилировщик Visual Studio 2008 Development Edition. Чтобы выполнить «целевое профилирование», я могу вручную установить фильтры профилировщика с помощью «отметок» в любое время, когда я присоединен к своему текущему тестовому коду. Но я бы хотел вставить метки вместо этого программно. Я хотел бы добавить вызов, инструкцию или директиву в мой тестовый код, который при выполнении сообщает профилировщику «это« метка »с именем« BeginWork »» и «это« метка »с именем« EndWork »».

Есть ли способ сделать это? Если нет, имеет ли Visual Studio 2010 такую ​​возможность?

Ответы [ 2 ]

11 голосов
/ 30 ноября 2010

Вы можете использовать API Profiler для программного добавления меток. См. Документацию по методу DataCollection.CommentMarkProfile на MSDN .

Вам просто нужно добавить ссылку на Microsoft.VisualStudio.Profiler.dll из «Program Files [x86] \ Microsoft Visual Studio 9.0 \ Team Tools \ Performance Tools», чтобы использовать управляемый API.

Ваш тестовый код может выглядеть примерно так:

MarkOperationResult result;
result = DataCollection.CommentMarkProfile(markID1, "BeginWork");
// Validate result...

SomeOperation();

result = DataCollection.CommentMarkProfile(markID2, "EndWork");
// Validate result...
0 голосов
/ 18 февраля 2011

Другим вариантом может быть использование PerformanceCounter - создайте свой собственный и обновите его программным способом.Вы можете использовать пример в Создание счетчика PerfMon для записи среднего за вызов (C #) в качестве ссылки.

...