什么样的优化才算数

一次缓存优化算成功的判据是【0】。

开始练习 →

优化前后的两个数

运行下面这段程序,填写它打印出来的结果。 BLK = 4 LINES = 4 def sim(addrs, ways=1): sets = LINES // ways tags = [[None] * ways for _

开始练习 →

自己写:一个命中率计量器

给一串访问,交出「命中 / 未命中 / 命中率」三样(命中率保留两位小数)。

开始练习 →

用分块把数据装进去

把「扫两遍 32 个元素」改成「分两批、每批扫两遍」,量出改进前后的未命中次数。

开始练习 →

把冲突也修掉

把两个互相冲突的地址错开,量出改进前后的未命中次数和倍数。

开始练习 →

⚠️ 改了布局,结果不能变

把「错开地址」这个优化做完之后,验证两种布局读到的数据完全一样。

开始练习 →

收官:出一份缓存优化报告

对同一段访问,交出四段报告:改前未命中 / 改后未命中 / 降了几倍 / 结果一致否。

开始练习 →

想知道一段访问对 Cache 友不友好,怎么看

想判断一段内存访问对 Cache 友不友好,最靠谱的办法是【0】。 (判分只看你在受控容器里的真机产物,纯本机、纯 Python,没有 gcc。)

开始练习 →

这串访问命中几次

真机:访问序列 1 2 1 3 1,容量足够大、之前访问过就算命中,一共命中几次? (判分只看你在受控容器里的真机产物,纯本机、纯 Python,没有 gcc。)

开始练习 →

查:命中/缺失轨迹

场景:~/lab/cache.py 是只读工具,跑 ~/lab/access.txt 里的访问序列(LRU、容量 4)。 任务:跑 python3 ~/lab/cache.py --trace,读它报的 命中轨迹 = X(形如 M-M-H-

开始练习 →