缓存和性能提升

Posted by QXSoftware on November 21, 2016

缓存的意义

CPU 的缓存(L1 L2 L3)是 CPU 和内存之间的临时存储器,它的速度非常快,可以极大缓解内存速度慢导致 CPU 等待数据传输的问题。

其实可以把这个概念扩展一下,如果有一些数据需要从硬盘上读取,那么可以用内存当做这些资源的“缓存”。通过设计一个合理的缓存机制,可以减少程序从硬盘读取数据的频率,增加程序运行效率。

例如,游戏内需要使用大量不同的纹理,那么可以设计一个 LRU 队列来缓存部分纹理,这样就不用每次都从磁盘加载了,这样可以提高性能。

缓存应该多大?

缓存速度固然很快,但是大部分机器的内存都是非常有限的,尤其是各种移动设备。所以缓存的尺寸应该尽量小,当然如果内存很大,那把所有东西都缓存起来也是可以的!

LRU(Least Recently Used)

LRU 表示“最近最少使用”算法。最简单的 LRU 可以用一个链表实现:

simple-lru

LRU 有多重变体,它们都是为了提高缓存的命中率而存在的。

参考资料:


转载请注明出处:

This work is licensed under a MIT License.