Skip to content

fix(vol1): 修正 cache 步长实验量纲错误(总耗时→每次访问耗时)#68

Merged
Charliechen114514 merged 1 commit into
mainfrom
fix/vol1-cache-stride-metric
Jun 18, 2026
Merged

fix(vol1): 修正 cache 步长实验量纲错误(总耗时→每次访问耗时)#68
Charliechen114514 merged 1 commit into
mainfrom
fix/vol1-cache-stride-metric

Conversation

@Charliechen114514

Copy link
Copy Markdown
Member

感谢 @Nyuudoukumo 老师的反馈,这里发现一个比较严重的内容错误,修改前的原版代码原版用「遍历数组的总耗时」展示 Cache 效应,但 i+=stride 使步长。翻倍访问次数减半,总耗时被访问次数主导而单调下降,cache 命中差异被完全淹没。

现在改用 clock_gettime(CLOCK_MONOTONIC) 测墙上时间,输出per_access=总时间÷访问次数,剥离访问次数干扰;同步重写解释段、踩坑预警、练习题。修正后 per_access 在 stride=16(64B 缓存行边界)处出现拐点

原版用「遍历数组的总耗时」展示 Cache 效应,但 i+=stride 使步长
翻倍访问次数减半,总耗时被访问次数主导而单调下降,cache 命中差异
被完全淹没——参考输出(68ms→223ms 上升)在任何真实机器上都复现不出来。

改用 clock_gettime(CLOCK_MONOTONIC) 测墙上时间,输出
per_access=总时间÷访问次数,剥离访问次数干扰;同步重写解释段、
踩坑预警、练习题。修正后 per_access 在 stride=16(64B 缓存行边界)
处出现拐点,与文字解释自洽。

Closes #67
@Charliechen114514 Charliechen114514 self-assigned this Jun 18, 2026
@Charliechen114514 Charliechen114514 added the bug Something isn't working label Jun 18, 2026
@Charliechen114514 Charliechen114514 merged commit 67743a5 into main Jun 18, 2026
4 checks passed
@Charliechen114514 Charliechen114514 deleted the fix/vol1-cache-stride-metric branch June 18, 2026 12:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Development

Successfully merging this pull request may close these issues.

[内容勘误] 卷一Cache 机制与内存层次的示例代码、参考输出和后续解释之间似乎存在不一致之处

1 participant