AFSim 仿真系统----性能工具

什么是 WPR/WPA?

Windows 性能记录器 (WPR) 和 Windows 性能分析器 (WPA) 是 Windows 性能工具包中提供的性能监控工具。它们是免费的工具,可以通过下载和安装 Windows 评估和部署工具包 (ADK) 来获得。

WPR 是一个工具,允许用户动态部署事件跟踪基础架构 (ETW),以捕获内核和应用程序事件。WPR 作为会话控制器,使用户能够启动和停止所有正在运行的应用程序的事件跟踪,并收集指标以诊断性能问题。

WPA 是一个工具,使用户能够可视化由 WPR 生成的事件跟踪日志 (ETL) 文件,并对记录的应用程序进行分析。

重要提示:用户需要访问正在剖析的应用程序相应的符号 (PDB),因为它们对于 WPA 确定进程所处的函数是必需的。PDB 文件在 AFSIM 发布时并未随附提供,但如果源代码可访问,则可以生成。

如何安装 WPR/WPA

如果测试机器上未安装 Windows ADK,可以通过访问下载页面选择适合所用 Windows 版本的安装程序来获取。

以下是运行 Windows 性能工具包的系统要求:

  • WPR:Windows 8 或更高版本。
  • WPA:Windows 8 或更高版本,且需要安装 Microsoft .NET Framework 4.5 或更高版本。

运行安装可执行文件时,用户应禁用发送匿名消息,并选择 Windows 性能工具包,其中包含 WPR 和 WPA。

注意:Windows 性能工具包为以前的命令行工具 Xperf 提供支持。然而,Xperfview 已不再支持,所有使用 Xperf 进行的录制必须通过 WPA 打开和分析。

一旦安装完成,性能工具就可以开始进行性能测试了。

如何使用 WPR

可以通过在任务栏搜索框中输入“Windows Performance Recorder”或在点击“开始”按钮后从 Windows Kits 中找到 WPR UI。开始录制会话之前,用户必须配置 WPR。以下是推荐的设置:

将性能场景设置为“通用”

这将 WPR 设置为在计算机运行时进行通用目的的录制。

将详细级别设置为“详细”

“轻量”模式耗费的资源更少,对系统的干扰也更小;然而“详细”录制对于全面分析更为有用。

设置日志记录

选择文件模式以进行简短和有针对性的分析会话。这将数据记录到顺序文件中,这些文件会不断增大,因此建议进行简短的会话,以避免生成不必要的大文件。

对于无法确定的分析会话,选择内存模式;即用户可以保持录音机运行,直到他们发现值得注意的事项或到达他们希望分析的应用程序的确切点(即,在加载脚本后通过向导 UI 启动任务)。这将数据记录到循环缓冲区中,当数据大小超过缓冲区大小时,将开始丢弃最旧的事件。

警告:文件模式如果会话运行过长,可能导致录制文件过大,以至于 WPA 无法打开。

选择配置文件

  • CPU 使用情况
  • 堆使用情况和 VirtualAlloc 使用情况(用于内存分析)

有关 WPR 功能的更详细说明,请参阅 WPR 文档页面。

配置 WPR 后,用户可以点击“开始”以开始录制会话,这将捕获所有在 CPU 上运行的内容。此时,用户可以运行需要分析的应用程序(向导、任务等)。点击“保存”将停止会话并保存配置文件数据;这将生成事件跟踪日志。

WPR 还可以通过命令提示符运行。性能工具在使用时需要提升的权限,因此用户必须以管理员身份运行命令提示符。以下是开始分析的示例命令:

wpr -start CPU.Verbose -recordtempto C:\<PATH>\wpr_test_temp

这个示例命令指定将记录 CPU 使用情况,并将所需的详细级别设置为“详细”。同时,还必须指定一个临时目录,WPR 将在生成最终 ETL 时用于存储中间文件。要停止 WPR 并保存录制,请使用以下命令:

wpr -stop C:\<PATH>\test.etl "问题描述" -skipPdbGen

路径和文件名必须指定,同时还需提供报告的描述。skipPdbGen 标志告诉 WPR 不生成任何缓存的符号文件。

有关如何通过命令行使用 WPR 的更多信息,用户可以使用以下命令:

wpr -help <option>

或查阅 Microsoft Devblog。

如何使用 WPA

以下是一个简要示例,演示如何查看特定应用程序(mission.exe)并分析其 CPU 使用情况。

当 WPA 打开 ETL 文件时,用户会看到一个空白的分析选项卡和左侧窗格中的图形浏览器。图形浏览器包含基于选择的性能配置文件记录的所有数据。

通过双击图表或将其拖入分析选项卡,用户可以查看记录的信息。每个信息面板的大小可以通过点击并拖动灰色分隔线进行调整。此示例展示了 CPU 使用情况(采样)图表,该图表测量每个函数在 CPU 上的聚合停留时间。默认采样率为每秒 1000 次计数,因此每次计数大约相当于 CPU 上的 1 毫秒。

为了隔离特定应用程序(如 mission.exe)的输出,用户可以通过右键单击目标应用程序并选择“禁用 > 除所选项外的所有内容”来过滤掉所有其他捕获的信息。

这将从图表窗口中移除所有其他采样进程。为了在底部的详细信息窗口中隔离该应用程序,用户可以右键单击它并选择“过滤到所选项”。

这将导致 WPA 看起来有些空白。

用户可以通过点击进程名称旁边的右指三角形来开始浏览进程树,并展开节点。堆栈列将开始显示该进程的函数堆栈,可以以相同的方式展开。此时,用户可能会看到 [Root] 下的节点标记为

<lib name>.dll!<Symbols disabled>

如果应用程序的符号未正确加载到 WPA 中,就会出现这种情况。

加载符号

要加载符号,用户需要点击 WPA 窗口左上角菜单中的“跟踪”,并选择“配置符号路径”。这将打开“配置符号”菜单,可能已经包含预选的启用路径;根据 WPR 的配置,它将自动生成并包含其他应用程序的缓存符号。如果用户只关心 AFSIM 应用程序,他们可以移除自动生成的路径,并添加 AFISM PDB 文件所在的路径。

添加路径后,用户应确保勾选框已启用,然后点击“确定”。接下来,必须再次点击“跟踪”,并选择“加载符号”选项。

注意:启用 WPA 符号自动加载会将以前会话的符号路径聚合到“配置符号”菜单中,这可能导致冗余和更长的加载时间。

现在,当用户返回详细信息窗口时,堆栈列中的节点将正确识别应用程序的函数名称。

分析:入门

WPA 按照最大采样计数对堆栈节点进行排序,这有助于识别哪些函数调用花费的时间最长。

仅凭采样计数可能会产生误导,因为表现不佳的函数可能发生得不频繁,相对于整个应用程序可能具有较小的采样计数;采样计数是整个应用程序运行时的聚合值。为了检测性能下降,可以利用图表窗口检查运行时的特定区间。通过点击图表并横向拖动光标,用户可以选择一个区间进行扩展。

右键单击所选区间并点击“缩放”将该区间扩展以填充图表窗口,并更新堆栈列中的采样计数,以反映在所选区间内最活跃的函数。

此外,可以选择单个函数调用以绘制到图表上。要启用此功能,用户可以点击图例列中的相应方框。下面的图表显示,尽管所选函数调用的采样计数相对于其他兄弟函数较小,但仍是图表中突然性能峰值的部分原因。

WPA 中有许多分析工具和功能,从保存特定配置设置到过滤特定信息。有关如何使用 WPA 及其功能的更多详细信息,可以在 WPA 文档页面中找到。

错误

在 2021 年 6 月,微软发布了一个修复程序,解决了一个 Windows Defender 错误,该错误导致 WPR 无法生成 CPU 使用情况(采样)报告。如果 WPA 中没有录制会话的采样图,可能需要运行 Windows 更新(可能需要几次)来修复此问题。

不幸的是,这仅修复了 Windows Defender 引起的多个问题中的一个。如果更新未能解决问题,临时的解决方法是在运行 WPR 时在 Windows 安全设置中禁用实时保护,然后在之后重新启用它。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/418109.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【LeetCode】09.回文数

题目要求 解题思路 主要是提防越界问题 代码实现 class Solution { public:bool isPalindrome(int x) {//处理边界if(x<0) return false;long tempx,ret0;while(temp){retret*10temp%10;temp/10;}return xret;} };

线性代数|机器学习-P34神经网络和学习函数

文章目录 1. 神经网络2. 损失函数3. 距离矩阵 1. 神经网络 构建一个神经网络步骤如下&#xff1a; 构建一个神经网络 构造一个学习函数 F ( x , v ) F(x,v) F(x,v),x代表权重 A k , b k A_k,b_k Ak​,bk​&#xff0c;v代表样本特征向量,ReLu激活函数 v 1 R e L u [ F ( A …

Windows安装anaconda注意事项及jupyter notebook更换目录

anaconda的介绍就不罗嗦了&#xff0c;既然准备安装了&#xff0c;说明你已经有所了解了。直入主题&#xff0c;Anaconda官网下载&#xff0c;实在太慢&#xff0c;可到https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/下载&#xff0c;注意&#xff0c;这是清华镜像站…

深度评测热门翻译工具,携手你的翻译得力助手

随着互联网技术的飞速发展&#xff0c;全球化交流日益频繁&#xff0c;跨语言沟通的需求也随之激增。对于外语水平有限的朋友来说&#xff0c;翻译器是一个必不可少的工具。今天我就分享几款我用的翻译器吧。 1.福晰在线翻译 链接直达>>https://fanyi.pdf365.cn/doc …

在嵌入式板子上搭建和自定义live555服务器---编译问题和方法整理

live555 官方网站 点我直达&#xff0c;live555是一个简单的专注于实现RTSP服务器的开源库。它自带解析H264 H265 mp3等源的API&#xff0c;有一个简单的推流文件参考RTSP服务器例程testH264VideoStreamer也有官方实现的LIVE555 Media Server。无论是命令行使用还是用API实现定…

大语言模型LLM权重4bit向量量化(Vector Quantization)/查找表量化基本原理

参考 https://apple.github.io/coremltools/docs-guides/source/opt-palettization-overview.html https://apple.github.io/coremltools/docs-guides/source/opt-palettization-algos.html Apple Intelligence Foundation Language Models 苹果向量量化&#xff1a; DKM:…

c/c++ 指针数组

顾名思义就是元素为指针的数组&#xff0c;如定义一个 char *类型的指针数组&#xff1a; char *strName[] {"123","456","789","abc","def" }; 如果是这样初始化的指针数组&#xff0c;c编译是会抛出警告信息的&#xff…

vue2+ueditor集成秀米编辑器

一、百度富文本编辑器 1.首先下载 百度富文本编辑器 下载地址&#xff1a;GitHub - fex-team/ueditor: rich text 富文本编辑器 2.把下载好的文件整理好 放在图片目录下 3. 安装插件vue-ueditor-wrap npm install vue-ueditor-wrap 4.在你所需要展示的页面 引入vue-uedito…

设计模式-单例模式工厂模式

3.1 单例模式 1.概念 用类来实现单例。由于某种需要&#xff0c;要保证一个类在程序的生命周期中只有一个实例&#xff0c;并且提供该实例的全局访问方法。 2.结构三要素 1)私有的静态对象属性private static instance&#xff0c;它的类型就是当前类的对象&#xff0c;静态…

EMC技术

目录 EMC 天线效应 公式 措施 EMC测试 展频技术 如何展频 OTA测试 EMC 三大要素&#xff1a;干扰源、传输介质、敏感设备。 EMI&#xff1a;Electromagnetic Interference&#xff0c;电磁干扰。 EMS&#xff1a;Electro Magnetic Susceptibility&#xff0c;电磁抗扰…

Centos7安装RabbitMQ

文章目录 Centos7安装RabbitMQ第一步、安装任何软件包之前&#xff0c;建议使用以下命令更新软件包和存储库第二步、Erlang在默认的YUM存储库中不可用&#xff0c;因此您将需要安装EPEL存储库第三步、RabbitMQ是基于Erlang&#xff08;面向高并发的语言&#xff09;语言开发&am…

语音测试(一)ffmpeg视频转音频

视频转音频 下载ffmpeg工具进入bin目录cmd进入控制台输入命令 ffmpeg.exe -i ./视频.mp4 ./音频.wav命令说明 ffmpeg -i input.mp4 output.mkv FFmpeg 可能会尝试自动选择合适的编码器对视频和音频进行重新编码&#xff0c;以便适应 MKV 格式的要求ffmpeg -i input.mp4 -c c…

Python | Leetcode Python题解之第390题消除游戏

题目&#xff1a; 题解&#xff1a; class Solution:def lastRemaining(self, n: int) -> int:a1 1k, cnt, step 0, n, 1while cnt > 1:if k % 2 0: # 正向a1 stepelse: # 反向if cnt % 2:a1 stepk 1cnt >> 1step << 1return a1

心觉:如何用一颗心改变世界和自己

关于如何开发自己的潜意识开发的底层逻辑和注意事项 我这里就不赘述了&#xff0c;可以看我前面的文章 今天主要讲一下&#xff0c;如何让我们祈祷的作用发挥到极致 这里提到了祈祷&#xff0c;其实就是正念 把自己的梦想&#xff0c;目标&#xff0c;愿望通过积极的语言 …

数据预处理与协同过滤推荐算法——从数据清洗到个性化电影推荐

推荐系统在现代应用中占据了重要地位&#xff0c;尤其在电影、音乐等个性化内容推荐中广泛使用。本文将介绍如何使用数据预处理、特征工程以及多种推荐算法&#xff08;包括协同过滤、基于内容的推荐、混合推荐等&#xff09;来实现电影推荐系统。通过Pandas、Scikit-learn、Te…

探索PDF的奥秘:pdfrw库的神奇之旅

文章目录 探索PDF的奥秘&#xff1a;pdfrw库的神奇之旅背景&#xff1a;为何选择pdfrw&#xff1f;pdfrw是什么&#xff1f;如何安装pdfrw&#xff1f;五个简单的库函数使用方法场景应用&#xff1a;pdfrw在实际工作中的应用常见问题与解决方案总结 探索PDF的奥秘&#xff1a;p…

Linux平台屏幕|摄像头采集并实现RTMP推送两种技术方案探究

技术背景 随着国产化操作系统的推进&#xff0c;市场对国产化操作系统下的生态构建&#xff0c;需求越来越迫切&#xff0c;特别是音视频这块&#xff0c;今天我们讨论的是如何在linux平台实现屏幕|摄像头采集&#xff0c;并推送至RTMP服务。 我们知道&#xff0c;Linux平台&…

C语言程序设计 笔记代码梳理 重制版

前言 第1章 C语言的流程 1.C程序经历的六个阶段 编辑(Edit)预处理(Preprocess)编译(Compile)汇编(Assemble)链接(Link)执行(Execute) 2.C语言编写代码到运行 都是先编译&#xff0c;后链接&#xff0c;最后运行。&#xff08;.c ---> .obj --->.exe&#xff09;这个过…

RockyLinux8.9上yum安装redis6

我百思不得其解的一个问题 我想在RockyLinux8.9上安装redis6&#xff0c;通过yum list | grep redis看到的redis版本只有redis5 appstream-official仓库是我新加的&#xff0c;这里先不管 于是我通过浏览器访问appstream仓库https://dl.rockylinux.org/vault/rocky/8.9/AppSt…

【个人笔记】VCS工具与命令

Title&#xff1a;VCS工具学习 一 介绍 是什么&#xff1f; VCS (Verilog Compiler Simulator) 是synopsys的verilog 仿真软件&#xff0c;竞品有Mentor公司的Modelsim、Cadence公司的NC-Verilog、Verilog—XL. VCS能够 分析、编译 HDL的design code&#xff0c;同时内置了 仿…