11 我正在查看某个进程的CPU使用率百分比。进程如何仅使用50%的CPU?流程不使用100%然后0%,然后100%吗?它不像其他所有指令一样是不同的程序。 performance cpu .net-framework — 安东尼·D source 1 有双处理器吗? 绝对是SuperUser的问题。 — Noldorin
16 它仅每秒轮询一次。您正在查看它使用了最后一秒的时间。 如果您看到cpu处于50%的状态一段时间,则可能是在双cpu系统中使用了100%的cpu。 — 乔尔·科洪 source 4 “双核系统的一个核”-甚至是具有“超线程”的单个CPU。 @ChrisW:固定。 — Joel Coehoorn CPU使用率的百分比往往报出的100%为每个CPU单独,所以要在一个双核系统中使用的CPU功率的总量为200%,在一个四核400%,等等 — 大卫ž 不是在Windows任务管理器中。 — Joel Coehoorn
11 从技术上讲,您是正确的。在任何给定时间,CPU正在使用或未使用。但是将其显示在图形中并不是很有帮助,因此该图形在一段时间(可能每秒)中平均CPU利用率。 — 埃里克·彼得罗里耶(Eric Petroelje) source
3 操作系统计划在特定时间段内进行该过程。因此,如果将进程安排为(例如)10毫秒中的1毫秒,则它将使用10%的CPU。 这有点违反直觉,因为(在单线程,单CPU系统中)该进程正在运行或未运行。即使用100%或0%。您看到的百分比是在一个时间窗口内测量的,是操作系统分配时隙给您的进程运行的度量。 请注意,如果您要访问I / O,则过程将对此无济于事。因此,如果您要进行大量计算,您将注册100%(假设没有其他运行)。如果随后等待网络数据包/磁盘访问等,则尽管进程仍在运行,但CPU的数量将下降。 — 布赖恩·阿格纽 source
2 在非常低的水平上,您基本上是正确的。在任何给定的时刻,处理器要么正在执行给定进程的指令,要么没有执行。 但是您的OS位于进程和处理器之间,使它们共享时间。您看到的百分比是操作系统已授予该进程的最近处理时间的百分比。 — 蒂姆 source
1 它基于平均时间。尽管所有线程都可以具有相同的CPU时间(基于优先级),但这些线程只能说“谢谢,但我很空闲”,然后转到下一个线程。这就是为什么程序不总是使用相同的%时间,并且大多数程序消耗0%的CPU,而真正需要CPU的程序本身可能要花费100%的时间。 为什么上限为50%?您可能有两个CPU内核,并且仅使用一个。 或者,如建议的那样,它正在使用超线程,但是我不知道这是如何表现的。 — 黑纳德 source
0 采样并平均化系统利用率,这是唯一明智的选择。 例如,记录一个进程/线程在1秒钟内花费了多少时间。如果它在CPU上花费1秒钟,则为100%CPU(如果您有2个CPU等,则为50%),如果它花费100毫秒即为10%CPU利用率。 — 没有 source