步长是什么
访问一个数组时的「步长」指的是【0】。
阅读更多 →
数组多大时差距最明显
分别在 4×4、8×8、16×16 上算一次「逐列比逐行多摸几倍块」。
阅读更多 →
⚠️ 换了顺序,结果必须一样
两种遍历各求一次和,验证结果完全相同。
阅读更多 →
自己写:两种遍历的下标序列
生成 8×8 数组「逐行」和「逐列」两种遍历的下标序列,各数出装载了几次。
阅读更多 →
差几倍
运行下面这段程序,填写它打印出来的结果。 BLK = 4 def loads(idxs): cur = -1 n = 0 for i in idxs: b =
阅读更多 →
两种遍历,各装载了几次
运行下面这段程序,填写它打印出来的结果。 BLK = 4 def loads(idxs): cur = -1 n = 0 for i in idxs: b =
阅读更多 →
换个遍历顺序,结果会变吗
把逐列遍历改成逐行遍历之后,算出来的结果【0】。
阅读更多 →
为什么逐列遍历慢
同样访问 64 个元素,逐列遍历比逐行遍历慢得多。因为【0】。
阅读更多 →
二维数组在内存里是怎么放的
一个二维数组在内存里【0】。
阅读更多 →
⚠️ 局部性好,不等于访问次数少
比较两种访问方式:一种访问 32 次摸 8 块,一种访问 8 次也摸 8 块。把「访问次数 / 装载次数」都打出来。
阅读更多 →