【问题标题】:Program shall utilize full processor but full utilization of CPU is not good [closed]程序应充分利用处理器,但 CPU 的充分利用不好[关闭]
【发布时间】:2015-12-23 12:03:06
【问题描述】:

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

一个人说:

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

并根据一般计算:

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

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

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

【问题讨论】:

    标签: performance language-agnostic coding-style cpu-usage


    【解决方案1】:

    这表明愚蠢的想法是如何在程序员社区中流传的。

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

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

    当一个程序什么都不做不必要时它是有效的。 您可以轻松地让程序看起来受 CPU 限制或 I/O 限制,只需让程序执行两次即可! 如果您看到较高的 CPU 百分比或较高的 I/O 利用率,那么当您认为计算机应该处于空闲状态时,这意味着某些东西正在运行,您应该怀疑它不是您想要的东西。

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

    【讨论】:

    • 我们为什么不编写节省处理能力的程序?不确定这是否是一个好问题,因为保存东西通常被认为是好的。
    • @student:一个程序要么在计算,要么在等待,所以它要么使用 100% 的内核,要么使用 0%。如果你看到它使用其他百分比,比如 40%,那是一秒内的时间平均值,或多或少。一个完美优化的程序可能会使用 100% 的 CPU,或者几乎没有。我不知道你所说的 保存 是什么意思,但是 CPU 百分比不是你应该非常关注的东西。你应该做的是学习如何诊断什么是花费时间 - 挂钟时间。
    猜你喜欢
    • 2017-03-30
    • 1970-01-01
    • 2011-05-06
    • 2011-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-13
    • 2016-01-04
    相关资源
    最近更新 更多