利用率视图

“利用率”视图显示有关当前进程使用的 CPU、GPU 和其他系统资源的信息(选择“分析>并发可视化工具”以启动并发可视化工具)。 它显示分析的进程、空闲进程、系统进程以及一段时间内在系统上运行的其他进程的平均核心利用率。 它不会显示哪个特定核心在任何给定时间处于活动状态。 例如,如果两个核心在给定时间段内分别以 50% 的容量运行,则此视图显示正在使用的一个逻辑核心。 通过将分析时间划分为短时间段来生成视图。 对于每个段,该图绘制在该时间间隔内在逻辑核心上执行的进程线程的平均数目。

CPU 使用率视图

该图显示时间(在 x 轴上)和目标进程、空闲进程和系统进程利用的平均逻辑核心。 (空闲进程显示空闲核心。系统进程是 Windows 中的一个进程,可以代表其他进程执行工作。在系统上运行的剩余进程会考虑剩余核心的利用率。

逻辑核心数显示在 y 轴上。 Windows 将硬件中的同时多线程支持视为逻辑核心(例如,Hyper-Threading)。 因此,具有支持每个核心两个硬件线程的四核处理器的系统显示为八逻辑核心系统。 这也适用于核心视图。 有关详细信息,请参阅 “核心”视图

GPU 活动图表显示一段时间内使用的 DirectX 引擎数。 如果引擎正在处理 DMA 数据包,则意味着引擎正在使用中。 该图表不显示特定的 DirectX 引擎(例如 3D 引擎、视频引擎和其他引擎)。

目的

使用并发可视化工具时,建议使用利用率视图作为性能调查的起点。 由于它在一段时间内概述了应用中的并发程度,因此可以使用它快速确定需要性能优化或并行化的区域。

如果对性能优化感兴趣,则可能尝试识别不符合预期的行为。 你可能还会查找逻辑 CPU 核心利用率较低的区域的存在和原因。 你可能正在查找 CPU 和 GPU 之间的使用模式。

如果有兴趣并行化应用,则可能正在寻找 CPU 绑定的执行区域或未利用 CPU 的区域。

CPU 绑定区域为绿色。 此图显示,如果应用是串行的,则使用一个核心。

未利用 CPU 的区域为灰色。 这可能表示应用处于空闲状态或正在执行阻塞 I/O 的时刻,这些 I/O 可以与其他 CPU 绑定的工作重叠以提供并行计算的机会。

找到感兴趣的行为时,可以通过选择该区域来放大查看。 缩放后,可以切换到“线程视图”或“核心视图”,以便进行更详细的分析。

如果您通过使用 C++ AMP 或 DirectX 来利用 GPU,您可能会感兴趣了解正在使用的 GPU 引擎数量或者识别 GPU 意外空闲的区域。

缩放

若要放大 CPU 使用率图或 GPU 活动图,请选择一个部分或使用图形上方的缩放滑块工具。 切换为其他视图时,缩放设置将保持不变。 若要再次缩小,请使用缩放滑块工具。 还可以使用 Ctrl+滚动进行缩放。

CPU 使用率图

CPU 使用率图显示一段时间内应用中的利用率级别。 X 轴表示跟踪的持续时间,y 轴表示系统上的逻辑核心数。 该图不显示任何给定时间哪个特定核心处于活动状态。 例如,如果两个核心在给定时间段内分别以 50% 的容量运行,则此视图显示正在使用的一个逻辑核心。

CPU 使用率图形颜色

  • 绿色表示当前进程使用系统中的逻辑核心。

  • 浅灰色表示系统上其他进程使用逻辑核心。 CPU 图中高百分比的浅灰色表示系统被其他进程严重加载,并且你的进程可能被它们抢占。 若要减少其他进程对逻辑核心的消耗,请减少在系统上运行的逻辑核心数。

  • 深灰色表示系统进程消耗逻辑核心。 无法直接控制这种情况,但知道何时发生,因为它可能会影响进程的逻辑核心的可用性,这非常有用。

  • 白色表示系统上未使用的逻辑核心的可用性。 如果可以找到更多并行机会,这些核心可用于你的进程。

平均 CPU 使用率

显示经过分析的进程在其持续时间内对系统逻辑核心的平均利用率。 该图不显示任何给定时间哪个特定核心处于活动状态。 例如,如果两个核心在给定时间段内分别以 50% 容量运行,则此视图将显示正在使用的一个逻辑核心。

缩放控件(利用率视图)

缩放控件可帮助你放大 CPU 利用率图表,以便专注于特定兴趣区域。 此控件放大视图的中心。 因此,在放大之前,应将感兴趣的区域居中。

可以在 CPU 使用率图表或 GPU 活动图表中拖动鼠标指针以创建突出显示的区域。 松开鼠标按钮后,视图将放大所选区域。

GPU 活动图

并发可视化工具中的 GPU 活动图按一段时间内使用的 DirectX 引擎数来衡量系统上的 DirectX 活动级别。 该图不显示使用了哪些特定引擎。 如果引擎处理了任何 GPU 工作,就可以认为它正在使用中。

GPU 活动图颜色

绿色表示当前进程的 DirectX 引擎消耗量。

浅灰色表示系统上其他进程使用 DirectX 引擎。 若要减少其他进程对 DirectX 引擎的消耗,请减少系统上运行的其他进程数。

白色表示系统上未使用的 DirectX 引擎的可用性。 如果可以找到更多利用它们的机会,这些引擎将可用于你的进程。 某些引擎只能用于特定类型的任务。

GPU 活动(分页)

GPU 活动(分页)段在线程选项卡上表示 GPU 处理分页请求的时间。 段的长度表示 GPU 正在处理直接内存访问(DMA)分页数据包的持续时间。 通常,分页数据包与 CPU 和 GPU 之间的内存传输相关联。

选择 GPU 分页段时, “当前 ”选项卡上的报表会显示有关已处理的 DMA 数据包的信息。 这包括它在与 DirectX 引擎关联的硬件队列中等待的时间、提交 DMA 数据包的进程以及处理数据包所需的时间。

GPU 活动(此过程)

并发可视化工具“线程”视图中的 GPU 活动(此进程) 段表示 GPU 代表当前进程处理请求的时间。 这些请求作为直接内存访问(DMA)数据包发送到 GPU。 段的长度表示 GPU 代表当前进程处理 DMA 数据包的时间。

选择 GPU 活动段时, “当前 ”选项卡上的报表会显示有关已处理的 DMA 数据包的信息。 此信息包括与 DirectX 引擎关联的硬件队列中数据包等待的时间、提交数据包的进程以及处理数据包所需的时间。 当前进程以外的进程可能以物理方式将 DMA 数据包提交到 GPU。 并发可视化工具可以检测另一个进程何时代表当前进程将工作提交到 GPU。

GPU 活动(其他进程)

并发可视化工具的“线程”视图中的 GPU 活动(其他进程) 段表示 GPU 代表系统上其他进程处理请求的时间。 请求以直接内存访问(DMA)数据包的形式发送到 GPU。 段的长度表示 GPU 处理数据包的持续时间。

选择此类段时, “当前 ”选项卡上的报告会显示有关已处理的数据包的信息。 该信息包括与 DirectX 引擎关联的硬件队列中数据包等待的时间、提交数据包的进程以及处理数据包所需的时间。