扫两遍和扫一遍,搬了几趟

扫两遍和扫一遍,搬了几趟

运行下面这段程序,填写它打印出来的结果。 BLK = 4 def loads(idxs): cur = -1 n = 0 for i in idxs: b =

阅读更多 →
把两趟合成一趟为什么有用

把两趟合成一趟为什么有用

原来要把数组扫两遍,改成一遍里把两件事都做完。这样做能省下【0】。

阅读更多 →
写缓存友好的代码,第一条是什么

写缓存友好的代码,第一条是什么

要让代码对缓存友好,最要紧的一条是【0】。

阅读更多 →
⚠️ 用访问次数当指标会得出反结论

⚠️ 用访问次数当指标会得出反结论

用「访问次数」和「装载次数」两个指标,各评一次步长 4 比步长 1「好多少倍」。⚠️ 两个指标会给出完全不同的结论。

阅读更多 →
把二维遍历也换算成步长

把二维遍历也换算成步长

逐列遍历一个 8×8 数组,相邻两次访问的下标差多少?把这个差和块大小比一比。

阅读更多 →
算一算浪费了多少

算一算浪费了多少

步长为 4 时,每块搬进来 4 个元素却只用了 1 个。算出「搬进来的元素总数 / 真正用到的 / 浪费率」(保留两位小数)。

阅读更多 →
自己写:步长扫描

自己写:步长扫描

对步长 1、2、4、8 各算一次「访问次数」和「装载次数」。

阅读更多 →
四种步长,各装载了几次

四种步长,各装载了几次

运行下面这段程序,填写它打印出来的结果。 BLK = 4 def loads(idxs): cur = -1 n = 0 for i in idxs: b =

阅读更多 →
步长再大呢

步长再大呢

步长继续变大到 8(一块装 4 个),装载次数【0】。

阅读更多 →
步长变大会怎样

步长变大会怎样

步长从 1 变到 4(一块正好装 4 个元素),访问次数减少到四分之一。这时【0】。

阅读更多 →