【发布时间】:2013-12-24 09:53:12
【问题描述】:
我已经尝试了所有可能得出的推理,但我并不真正理解这个情节。 它基本上显示了从不同大小的数组以不同的步幅读取和写入的性能。 我知道对于像 4 字节这样的小步幅,我读取了缓存中的所有单元格,因此我有很好的性能。但是当我有 2 MB 数组和 4k 步幅时会发生什么?还是 4M 和 4k 步幅?为什么性能这么差?最后,为什么当我有 1MB 阵列并且步幅为 1/8 大小时性能还不错,什么时候 1/4 大小性能最差,然后在一半大小时,性能超级好? 请帮帮我,这件事快把我逼疯了。
在此链接,代码:https://dl.dropboxusercontent.com/u/18373264/membench/membench.c
【问题讨论】:
-
能否附上基准代码?乍一看,您似乎正在达到 4k 页面大小,可能会破坏您的 TLB,但如果不确切知道您在做什么,就很难判断。
-
我已经添加了代码dl.dropboxusercontent.com/u/18373264/membench/membench.c的链接,非常感谢。
标签: performance memory benchmarking