gpt4 book ai didi

windows - Windows Performance Counter 的工作范式是什么?

转载 作者:可可西里 更新时间:2023-11-01 10:40:22 25 4
gpt4 key购买 nike

我刚看完this article关于如何创建性能计数器和更新计数器的值。但我对 Windows 性能计数器的工作范式有点困惑。假设有2个程序A和B,A想通过一些性能计数器了解B的性能。以下哪种情况是正确的?

  • B 在 Windows 中创建/注册一些性能计数器,B 负责更新计数器的值。 A 可能是系统 perfmon.exe。 A 并未主动探查 B 的执行情况。 A 只需检查注册的计数器并获取由 B 提供和更新的值。即使没有 A,B 仍然总是更新其注册的性能计数器。但这不是对 B 性能的某种负担吗?

  • A 主动探测 B 的执行状态并计算出性能计数器值。在这个范例中,B 没有任何额外的负担。

    简而言之,谁负责创建和更新性能计数器?正在测量其性能的目标程序?或者测量目标程序性能的主题程序?对于程序A,它是一个探测场景吗?或者只是一个阅读场景?

非常感谢。

最佳答案

Performance Counters可能是一个有趣的问题,但您的总体目标是什么?您是否有兴趣了解如何使程序运行得更快?

如果不是,请忽略此答案。

如果是这样,那么有一种观点认为,性能计数器的存在是为了对事物进行计数,对您想要测量的事物进行计数。此外,它还表示测量可以很好地查看您修复的内容是否有所不同,但对于准确找出性能问题(瓶颈)的位置并没有多大帮助。

如果存在瓶颈(并且可能存在),如果将其移除会导致时间减少一定百分比(例如 30%),那么关于它是什么的最大、最明显的线索就是这个

  • 程序在这 30% 的时间里做什么?

如果您对其正在执行的操作进行 10 次随机时间采样,那么在这些采样中的 3 次(或多或少)中,您将“捕捉到它”的瓶颈。注意一件事——我们在问“什么”。我们不是在问“多少钱”。

正是因为它需要时间,所以它很容易找到。调试很难——您必须跟踪整个执行过程并发现出错的地方。找到瓶颈很容易 - 它们会暴露给您。

你不需要为了寻找而测量。一旦找到,就可以测量。 Here's more on that subject.

关于windows - Windows Performance Counter 的工作范式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3099966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com