更大的缓存大小是否总能提高性能?

问题描述 投票:9回答:3

由于处理器内的缓存增加了指令执行速度。我想知道如果我们将缓存的大小增加到许多MB,如1 GB。可能吗?如果它会增加缓存大小总是导致性能提高?

caching memory cpu processor
3个回答
4
投票

这是一种简化,但是,缓存增加“速度”的主要原因之一是它提供了一个非常靠近处理器的快速内存 - 这比主内存访问速度快得多。所以,从理论上讲,增加缓存的大小应该允许更多的信息存储在这个“快速”的内存中,从而提高性能。在现实世界中,事情显然比这复杂得多,当然会有增加了与这种大型缓存相关的复杂性和成本,以及处理缓存一致性,缓存算法等问题。


4
投票

在一侧的高速缓存大小和命中率与在另一侧的功耗之间的读取延迟之间存在折衷。因此,您的第一个问题的答案是:技术上(可能)可能,但不太可能有意义,因为现代CPU中只有几MB的L3缓存具有大约几十个周期的读取延迟。

性能更多地取决于内存访问模式而不是缓存大小。更确切地说,如果程序主要是顺序的,则缓存大小并不是什么大问题。如果存在大量随机访问(例如,当关联容器被主动使用时),缓存大小确实很重要。

以上适用于单个计算任务。在具有多个活动进程的多进程环境中,由于进程间争用的减少,更大的缓存大小总是更好。


0
投票

由于缓存临时存储数据。缓存用于轻松定位经常使用的文件。因此,如果缓存的大小增加到1gb或更多,它将不会保留为缓存,它就变成了RAM。数据存储在ram临时中。因此,如果不使用高速缓存,当处理器调用数据时,ram将花费时间来获取要提供给处理器的数据,因为它的大小为4gb或更大。所以我们使用缓存作为我们最近或经常使用的东西的临时内存。通过这种方式,ram ram不需要查找和获取数据以将其提供给处理器,因为处理器直接从缓存访问数据,因为缓存的大小很小,它不需要时间来查找数据,并且处理器不需要调用ram获取数据,所有这些都在没有内存的情况下快速完成。让我们举一个例子,我们有一个宽大的教室(RAM),我们的主要(处理器)呼叫类CR(数据)用于某些目的,然后将进入教室,并将在1000名学生的班级中找到CR并采取他是校长。这需要时间。当我们在类中指定CR的空间(缓存)时,因为主要调用类的CR,所以在大多数情况下由Principal调用CR时,很容易找到CR。

© www.soinside.com 2019 - 2024. All rights reserved.