查找缓存块大小
如何以编程方式(使用 C++)或其他方式在 Ubuntu 中找到缓存块大小?
How do I find the cache block size in Ubuntu, programmatically (with C++) or otherwise?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如何以编程方式(使用 C++)或其他方式在 Ubuntu 中找到缓存块大小?
How do I find the cache block size in Ubuntu, programmatically (with C++) or otherwise?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
你可以在
/proc/cpuinfo
中找到它;cache size
表示总大小,cache_alignment
表示块大小。You can find it in
/proc/cpuinfo
;cache size
for the total size, andcache_alignment
for the block size.一种方法是用随机值填充 std::vector 或普通数组,然后执行一些简单的操作,例如对循环中的每个元素求平方。
然后测量执行时间作为向量长度的函数。
一旦向量不适合缓存,您将非常清楚地看到执行时间的跳跃。
One way is to fill an
std::vector
or just a plain array with random values, and do something simple, e.g. square each element in a loop.Then measure the execution time as a function of the vector length.
You'll very clearly see a jump in the exec time once your vector does not fit into the cache.