caching - 缓存大小和阻塞循环
问题描述
参考以下代码演示问题:
for (i = 0; i < M; i++) {
for (j = 0; j < N; j++) {
dst[i][j] = src[i][j];
}
}
所以只是简单的行主要矩阵复制。将有 MxN 加载和 MxN 存储分别缓存。如果 M 大于缓存块大小 K,M > K(让我们把它称为“通用”而不是 L1/L2 等),那么即使是单行 src[i][j] 也无法放入缓存中堵塞。缓存控制器会将一行分解为多个缓存块/行吗?假设直接映射缓存并假设我们不会在代码中将 src[i][j] 分解成更小的块,以便它们适合缓存块。
当然,即使只是从 src[i][j] 中取出 M 中的 K,这个复制操作仍然有效。但只是想知道在这种情况下发生了什么。
解决方案
推荐阅读
- javascript - 如何从另一个 HTML 文档中获取表单元素的长度?
- python - 我如何使用 pandas 连接 csv 文件以得到一个带有堆叠数据的 csv 文件
- jsf - 为什么 PrimeFaces contentFlow 标签不起作用?
- ssl - 设置 Google SSL 证书
- unity3d - Unity:为什么在将文本文件读入 TextAsset 时出现异常?
- python - 我无法将逻辑回归拟合到模型中。如何解决这个问题?
- spring-boot - 无法识别 H2 数据库的语法问题
- android - 有没有办法在Android中不同层的Fragment之间使用SharedElementTransition?
- mailgun - Mailgun SMTP:从邮件中删除 Src 标记
- github - GitHub 组织的自定义位置文本