gpt4 book ai didi

c# - 如何获取进程使用的CPU周期数

转载 作者:可可西里 更新时间:2023-11-01 08:19:21 25 4
gpt4 key购买 nike

我需要使用 C#(或 VB.Net)获取特定进程使用的 CPU 周期数。此信息在 Sysinternal 的 Process Explorer 中的 Process properties 弹出窗口中可用。例如,我在发布此消息时使用的浏览器目前使用了 18,521,360,165 个周期(大约几亿)。有谁知道如何从 .Net 应用程序获取此信息?我知道如何获取 CPU 使用率(百分比),但这不是我要找的。我需要一种方法来比较在不同时间运行的两个不同进程之间的 CPU 使用率。

谢谢,马特

更新:
为什么我需要这个?我是本地 .Net 用户组的负责人,我们正在举办代码挑战赛,开发人员提交代码来解决问题。我需要一种方法来衡量一个条目相对于另一个条目的性能。目前我正在使用计时器来衡量性能。服务器 100% 专用于此,但这并不能保证可能同时发生其他事情。显然,这充满了各种潜在问题,但总的来说,它是相当准确的。测量使用的 CPU 周期数将是一种几乎是万无一失的方法来衡量某人的条目相对于另一个条目的执行情况。我敢肯定,有人可以解决这个问题——此时无需尝试。 ;-) 我希望这有助于解释我的问题背后的原因,以及为什么计时器不足以解决我的问题。

最佳答案

Process Explorer 调用 QueryProcessCycleTime获取该信息。您可能必须使用 P/Invoke 来调用它。我希望它的 P/Invoke 签名看起来像:

[DllImport("kernel32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool QueryProcessCycleTime(IntPtr ProcessHandle, out ulong CycleTime);

关于c# - 如何获取进程使用的CPU周期数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6526828/

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