我正在为我儿子买一台笔记本电脑,供他上学用,所以它不一定是一台游戏机。我以前也组装过电脑,但已经很久了。
我注意到许多入门级机器都配备了双核或单核 CPU。我知道在其他条件相同的情况下,双核 CPU 的性能可能会更好。但是,如果单核的 L2 缓存大得多(例如单核为 3 MB,双核为 1 MB),情况会怎样?我知道这也会显著影响性能。
我理解其他系统组件(例如内存速度和图形硬件)也会影响系统性能。我的问题是,如果我必须在额外的 CPU 核心或更多缓存之间做出选择,我应该选择什么?
答案1
CPU 缓存
CPU 缓存越低,发生以下情况的概率就越高:缓存未命中,这将显著降低性能。话虽如此,另一个完整的核心将允许计算机同时运行至少两个线程,因此当你必须选择一个而不是另一个时,这是一个权衡。
从上图我们可以看出,当缓存大小超过 1MB 时,缓存未命中的概率已经非常低,并且随着缓存大小的增加,收益会递减。
CPU 核心
另一方面,当应用程序利用多核时,额外的 CPU 核心可以显著提高速度。
对于大多数实际应用来说,额外的执行核心比额外的缓存更能提高性能。缓存大小和核心数量在衡量计算机性能时都至关重要,但当你一开始就处理相对较少的核心时,额外的核心通常会带来显著的性能提升。
...
答案2
额外核心,简单易用,适用于大多数应用程序。在最佳条件下,您可以进行两倍的计算。缓存有帮助,但不会加倍速度。
答案3
正确的选择(双核与额外缓存容量)取决于将在笔记本电脑上运行的目标应用程序。
理论上,与单核处理器相比,双核处理器的执行时间将缩短一半。然而,在实践中,由于编写并行应用程序的挑战,很少能实现 2 倍的加速。阿姆达尔定律(关联)表明即使应用程序 90% 的执行完全并行化(对于大型应用程序来说是一项具有挑战性的任务),加速也只是 1.82 倍而不是 2 倍。对于未以可扩展方式实现的应用程序,第二个核心的加速只会降低。
更大的 L2 缓存容量将降低缓存中的未命中率,如 @Breakthrough 的答案所示。然而,答案引出了不正确从图中可以得出结论,超过 1MB 的缓存容量只会带来微小的改进。收益递减点取决于应用程序(特别是工作集大小关联) 应用程序。大多数应用程序的工作集大小可能超过 1MB,因此,更大的缓存将有助于提高性能,避免长延迟的 DRAM 访问(处理器的运行速度比主内存快 3 个数量级)
最后,虽然我的回答听起来像是在支持更大的缓存而不是第二个处理器,但我想指出的是,大多数现代计算机课程都侧重于向学生介绍并行编程。因此,多核处理器更有意义,尽管它们在性能方面并不是更好的选择
答案4
我推荐双核机器,而不是单核机器。
由于 Windows 基本上同时执行很多操作(例如,您浏览网页,同时下载 Windows 更新,防病毒软件正在扫描刚刚下载的文件),双核系统比单核机器更“响应”。