提问人:Zameer Ansari 提问时间:12/23/2015 最后编辑:Kevin WorkmanZameer Ansari 更新时间:6/28/2016 访问量:751
程序应使用完整的处理器,但 CPU 的充分利用率不好 [已关闭]
Program shall utilize full processor but full utilization of CPU is not good [closed]
问:
我今天参加了一个程序员会议:
一个人说:
一个好的程序利用最大的处理器
根据一般计算:
当任务管理器显示 100% 利用率时。这意味着您的 PC 需要一些药物。
使用最大处理器时的程序会将任务管理器推送到 100%。
这两件事听起来很矛盾。有人可以澄清理由吗?
答:
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 百分比不是你应该注意的事情。你应该做的是学习如何诊断什么在浪费时间——挂钟时间。
上一个:避免在函数体内部欺骗参数的正确性
下一个:使用幻数是好习惯吗?
评论