并发可视化工具 SDK
可以通过使用并发可视化工具 SDK 并发可视化工具中显示的其他信息来对源代码进行检测。在代码中,您可以与阶段和事件关联的其他数据。这些附加的可视化效果称为标记。介绍性演练中,请参阅引入并发可视化工具 SDK。
属性
标志、 范围,以及每个有两个属性的消息: 类别和重要性。在高级设置对话框中,您可以使用这些属性进行筛选所显示的标记的集合。此外,这些属性会影响标记的可视化表示形式。例如,大小的标志用来表示重要性。此外,颜色用于指示类别。
基本用法
并发可视化工具提供了可用于生成标记的默认提供程序。已注册提供程序与并发可视化工具一起使用,您不必执行任何其他使用户界面中显示的标记操作。
C# 和 Visual Basic
在 C#,Visual basic 中和其他托管的代码中,使用默认的提供程序,通过调用Markers。它提供了四个函数来生成标记: WriteFlag, EnterSpan, WriteMessage,和WriteAlert。有多个重载,这些函数,具体取决于是否要使用这些属性的默认值。最简单的重载采用指定事件的描述字符串参数。并发可视化工具报告中显示的说明。
向 C# 或 Visual Basic 的项目添加 SDK 支持
在菜单栏中,选择分析, 并发可视化工具, 添加到项目的 SDK。
选择要用来访问 SDK,然后选择的项目添加到选定项目的 SDK 按钮。
添加导入或使用您的代码语句。
using Microsoft.ConcurrencyVisualizer.Instrumentation;
Imports Microsoft.ConcurrencyVisualizer.Instrumentation
C++
在 C++ 中,创建marker_series 类对象,并将其用于调用的函数。marker_series类公开用于生成标记,这三个函数marker_series::write_flag 方法、 marker_series::write_message 方法,和marker_series::write_alert 方法。
添加 SDK 支持 C++ 或 C 项目
在菜单栏中,选择分析, 并发可视化工具, 添加到项目的 SDK。
选择要用来访问 SDK,然后选择的项目添加到选定项目的 SDK 按钮。
对于 C++,包括cvmarkersobj.h。对于 C,包括cvmarkers.h。
使用添加到您的代码语句。
using namespace Concurrency::diagnostic;
创建marker_series对象,并将它以传递span构造函数。
marker_series mySeries; span s(mySeries, _T("Span description"));
自定义的使用
对于高级方案,并发可视化工具 SDK 提供了更多的控制。两个主要概念是与更高级的方案相关联: 标记提供程序和标记的系列。标记提供程序都是不同的 ETW 提供程序 (每个都有不同的 GUID)。标记系列是串行通道的一个提供程序生成的事件。您可以使用它们来组织的标记提供程序生成的事件。
在 C# 或 Visual Basic 项目中使用新的标记提供程序
创建 MarkerWriter 对象。构造函数采用一个 GUID。
要注册的提供程序,请打开并发可视化工具高级设置对话框。选择标记 选项卡,然后选择 中添加新的提供商按钮。在高级设置对话框框中,输入用于创建提供程序和提供程序的说明的 GUID。
在 C++ 或 C 项目中使用新的标记提供程序
使用CvInitProvider PCV_PROVIDER 的初始化函数。构造函数采用一个 GUID * 和 PCV_PROVIDER *。
若要注册的提供程序,请打开高级设置对话框。选择标记 选项卡,然后选择 中添加新的提供商按钮。在此对话框中,输入用于创建提供程序和提供程序的说明的 GUID。
在 C# 或 Visual Basic 项目中使用标记系列
若要使用新的MarkerSeries,第一次使用创建它MarkerWriter对象,然后直接从新的系列生成标记事件。
MarkerSeries series1 = myMarkerWriter.CreateMarkerSeries(″Series 1″); series1.WriteFlag(″My flag″);
Dim series1 As New myMarkerWriter.CreateMarkerSeries(″Series 1″) series1.WriteFlag(″My flag″)
在 C++ 项目中使用标记系列
创建 marker_series 对象。此新系列,您可以生成事件。
marker_series series; series.write_flag(_T("Hello world!"));
用于标记系列 C 项目
使用CvCreateMarkerSeries函数来创建 PCV_MARKERSERIES。
PCV_MARKERSERIES series; CvCreatemarkerSeries(myProvider, _T("My Series"), &series); CvWriteFlag(series, _T("Writing a flag"));
相关主题
标题 |
说明 |
---|---|
说明 C++ API 并发可视化工具。 |
|
描述并发可视化工具 API 为 c。 |
|
描述托管代码的并发可视化工具 API。 |
|
针对使用并发方法生成的且包括线程执行数据的分析数据文件,提供有关视图和报告的参考信息。 |