程序应使用完整的处理器,但 CPU 的充分利用率不好 [已关闭]

Program shall utilize full processor but full utilization of CPU is not good [closed]

提问人:Zameer Ansari 提问时间:12/23/2015 最后编辑:Kevin WorkmanZameer Ansari 更新时间:6/28/2016 访问量:751

问:


想改进这个问题吗?更新问题,使其仅通过编辑这篇文章来关注一个问题。

7年前关闭。

我今天参加了一个程序员会议:

一个人说:

一个好的程序利用最大的处理器

根据一般计算:

当任务管理器显示 100% 利用率时。这意味着您的 PC 需要一些药物。

使用最大处理器时的程序会将任务管理器推送到 100%。

这两件事听起来很矛盾。有人可以澄清理由吗?

性能 与语言无关的 编码式 CPU 使用

评论


答:

4赞 Mike Dunlavey 12/23/2015 #1

这显示了愚蠢的想法是如何在程序员社区中流动的。

所有 CPU 利用率都非常粗略地告诉您,程序花费在计算与等待上的时间比例,可能是用于 I/O,也可能是用于不相关的处理。此外,如果您有一台 4 核机器,25% 可能意味着 100% 的单核。

某些程序应该受 I/O 约束,因为它们的主要工作是读取/写入文件或其他 I/O。它们的 CPU 使用率应该很低。 其他的应该受 CPU 限制。 但这并不能告诉你其中任何一个是否“有效”。

当一个程序不做任何不必要的事情时,它是有效的。 您可以轻松地使程序看起来受 CPU 或 I/O 限制,只需让它执行两次所有操作即可! 如果看到 CPU 百分比较高或 I/O 利用率较高,则就计算机而言,该计算机应处于空闲状态,则表示某些内容正在运行,并且您应该怀疑它不是您想要的。

我只知道一种使程序高效的方法,那就是诊断它们在做什么,并消除任何需要时间并且可以删除的东西。例。

评论

0赞 Zameer Ansari 12/23/2015
为什么我们不能编写节省处理能力的程序呢?不确定这是否是一个好问题,因为一般来说,保存东西被认为是好的。
2赞 Mike Dunlavey 12/23/2015
@student:程序要么在计算,要么在等待,因此它要么使用其内核的 100%,要么使用 0%。如果你看到它使用其他百分比,比如 40%,那就是一秒钟的时间平均值,或多或少。一个完美的最佳程序可能使用 100% 的 CPU,或者几乎不使用 CPU。我不知道你说的保存东西是什么意思,但 CPU 百分比不是你应该注意的事情。你应该做的是学习如何诊断什么在浪费时间——挂钟时间。