以编程方式插入性能分析标记

时间:2010-11-29 23:42:32

标签: .net visual-studio profiling profiler

我正在使用Visual Studio 2008开发版的Profiler。要执行“有针对性的分析”,我可以在附加到当前运行的测试代码的任何时候通过“标记”手动设置分析器过滤器。但我想以编程方式插入标记。我想在我的测试代码中添加一个调用,指令或指令,这些代码在执行时告诉探查器“这是一个'标记',称为'BeginWork'”和“这是一个'标记',称为'EndWork'”。

有办法吗?如果没有,Visual Studio 2010是否具备该功能?

2 个答案:

答案 0 :(得分:10)

您可以使用Profiler API以编程方式插入标记。请参阅MSDN上的DataCollection.CommentMarkProfile方法文档。

您只需要在“Program Files [x86] \ Microsoft Visual Studio 9.0 \ Team Tools \ Performance Tools”中添加对Microsoft.VisualStudio.Profiler.dll的引用,即可使用托管API。

您的测试代码可能类似于:

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

SomeOperation();

result = DataCollection.CommentMarkProfile(markID2, "EndWork");
// Validate result...

答案 1 :(得分:0)

另一种选择可能是使用PerformanceCounter - 创建自己的一个并以编程方式更新它。您可以使用Creating a PerfMon counter to record an average per call (C#)中的示例作为参考。