Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows perfmon性能计数器是否基于相同的东西;“引擎盖下”;作为xperf使用的ETW事件?_Windows_Performance_Events_Perfmon_Xperf - Fatal编程技术网

Windows perfmon性能计数器是否基于相同的东西;“引擎盖下”;作为xperf使用的ETW事件?

Windows perfmon性能计数器是否基于相同的东西;“引擎盖下”;作为xperf使用的ETW事件?,windows,performance,events,perfmon,xperf,Windows,Performance,Events,Perfmon,Xperf,我最近开始熟悉perfmon和xperf。Perfmon使用性能计数器,xperf使用ETW(windows事件跟踪)。Perfmon有提供数据的对象,而xperf使用“提供者”组。作为这个领域的新手,我想问是否有人能告诉我perfmon使用的性能计数器是否真的基于与xperf使用的ETW事件相同的东西,如果是,您能澄清一下联系吗。如果它们不是基于同一事物,你能解释一下它们是如何不同的吗?它们是两个不同的事物,没有共享基础设施 计数器用于提供 关于该项目进展情况的信息 操作系统或应用程序, 服务

我最近开始熟悉perfmon和xperf。Perfmon使用性能计数器,xperf使用ETW(windows事件跟踪)。Perfmon有提供数据的对象,而xperf使用“提供者”组。作为这个领域的新手,我想问是否有人能告诉我perfmon使用的性能计数器是否真的基于与xperf使用的ETW事件相同的东西,如果是,您能澄清一下联系吗。如果它们不是基于同一事物,你能解释一下它们是如何不同的吗?

它们是两个不同的事物,没有共享基础设施

计数器用于提供 关于该项目进展情况的信息 操作系统或应用程序, 服务,或驱动程序正在执行。这个 计数器数据有助于确定系统 瓶颈和微调系统和 应用程序性能。手术室 系统、网络和设备提供 应用程序可以使用的计数器数据 消费,为用户提供 系统运行状况的图形视图 他正在表演

Windows事件跟踪(ETW)是一种 有效的内核级跟踪 允许您记录内核或 将应用程序定义的事件添加到日志 文件


它们都可以用于性能分析,但ETW提供了应用程序内部随时间变化的行为审计跟踪(如传统的用户模式日志文件),而PerfMon提供了应用程序中当前统计数据(“当前队列长度”)或其生存期内聚合数据的视图(例如“平均吞吐量”、“发送的总字节数”)。

基于Vista+中的启动,性能计数器似乎有一个ETW外观,因此它们可以以与ETW完全相同的方式使用

Windows Vista®附带的新性能计数器库(PERFLIB 2.0版)为开发人员提供了许多优势,包括:

提供程序和使用者之间的一种标准进程间通信(IPC)机制,它基于Windows事件跟踪(ETW)通知,可简化开发,生成更统一、更可靠的代码