我又在写关于我的索尼 Vaio 笔记本电脑的文章了。它是一台 i7 处理器、6 GB RAM、500 GB 7200 RPM 的机器。
自从我拥有它以来,我大概只见过一次它的 CPU 占用率达到 100%。大多数时候,应用程序的运行速度似乎与 Core 2 Duo 相同,但处理能力百分比较小。
如果该芯片实际上可以利用其处理能力比其前代产品(Core 2 Duo)运行得更快,那就太好了。
相反,我会坐在那里等待文件压缩或 CD 翻录,而计算机将使用 20-25% 的处理能力。为什么?我使用的是 Windows x64,那么这难道不应该更多地利用芯片吗?
有时将任务管理器中的优先级更改为“高”会有所帮助,但帮助并不大。
有没有办法让处理器更加卖力地工作?是不是因为 IO 问题,我的驱动器跟不上?我怎么知道“涡轮增压”真的有效?
谢谢!我非常感激任何想法。
答案1
文件压缩和 CD 翻录可能受到笔记本电脑 IO 子系统的限制。更快的 CPU 的通常好处是您可以在翻录/压缩等操作时执行其他操作。如果您通常等待单个任务完成后再开始下一个任务,那么您可能浪费了钱购买比实际需要更多的 CPU - 至少对于所讨论的笔记本电脑而言。添加 SSD 可能会让您更好地平衡 IO/CPU 工作负载。
64 位操作系统相对于 32 位操作系统的优势在于(有时)它可以用更少的周期完成更多的工作。换句话说,在完成相同实际工作量的情况下,CPU 利用率会降低。CPU 利用率低本身并不是一件“坏事”。大多数人都会对这种情况感到满意。
答案2
根据应用程序的不同,有些应用程序仅编码为使用 1 个或 2 个内核。为了让您看到四核处理器的性能提升,应用程序必须设计为支持额外的内核。
例如:
答案3
您如何显示 CPU 利用率?
如果您使用任务管理器,我建议您改用 Sysinternal Process Explorer。它有一个系统信息窗口,您可以打开它来显示总 CPU 使用率,或者通过复选框来显示每个处理器核心的利用率。
您提到 CD 翻录和文件压缩的 CPU 利用率达到 25% 左右,这说明您正在执行的任务受限于单个 CPU。例如,压缩文件的性能受到以下两个因素的限制:
- I/O(磁盘)
- CPU 性能
大多数压缩无法利用多个核心,因为它本质上是一个单线程任务。因此,并行添加更多处理器不会加快速度。如果您查看每个核心的处理器利用率,您会看到一个核心全速运行,而其他核心则基本处于空闲状态。现在,一个核心为 100%,3 个核心为 0%,平均约为 25% - 因此这与您看到的情况相符。
同样,CD 翻录也受到从 CD 中提取数据的速度以及您如何处理数据的限制。如果您(例如)将音频转换为 MP3 作为翻录的一部分,那么该转换也几乎是单线程的,这意味着不会使用多个 CPU 核心(或使整个工作完成得更快)。您的限制将由读取速度或单个 CPU 的速度决定。
听起来,您看到 20% - 25% 的原因是您进行测量的作业被绑定到单个 CPU,该 CPU 运行得非常平稳,而其他作业则处于空闲状态,因为您正在执行的任务无法利用多个处理器。
要查看总处理器利用率是否可以更高,您需要运行可以利用多个 CPU 的任务。(当然没有人会告诉您他们的程序是否这样做。)
摘选此处其他答案中提出的观点:有些问题适合并行处理,如果正确编写了程序(针对该问题),则可以利用多个 CPU。而有些问题无法利用这种并行处理。例如,我很确定所有常见 zip 类型文件中使用的 LZ 样式压缩都无法利用并行处理,因为算法需要按顺序读取源文件才能创建压缩文件。像这样的顺序处理不能轻易分布在多个线程上(然后可以将线程分配给物理处理器)。
答案4
7-zip使用多个核心来压缩文件,但并非所有压缩算法都允许多线程执行。