gpt4 book ai didi

performance - 只读/写入内存段的最佳内存布局

转载 作者:行者123 更新时间:2023-12-03 17:06:36 26 4
gpt4 key购买 nike

假设我有两个内存段(每个内存段大小相等,大小约为 1kb),一个是只读的(初始化后),另一个是可读/可写的。

就内存性能而言,此类段的最佳内存布局是什么?一个分配,连续的段或两个分配(通常不连续)。我的主要架构是 Linux Intel 64 位。

我的感觉是前者(缓存更友好)的情况更好。是否存在首选第二种布局的情况?

最佳答案

我会将 2KB 数据放在 4KB 页面的中间,以避免靠近页面边界的读写干扰。同样,出于同样的原因,将写入数据分开也是一个好主意。

具有连续的读/写 block 可能不如将它们分开有效。例如,正在存储只对只读部分感兴趣的代码数据的缓存可能会因来自另一个 cpu 的写入而变得无效。缓存行将失效并刷新,即使代码没有读取可写数据。通过将 block 分开,可以避免这种情况,写入可写数据 block 只会使可写 block 的缓存行无效,而不会干扰只读 block 的缓存行。

请注意,这只是可读和可写 block 之间的 block 边界的问题。如果您的 block 大小远大于缓存行大小,那么这将是一个外围问题,但由于您的 block 很小,只需要几个缓存行,那么使行无效的问题可能很重要。

关于performance - 只读/写入内存段的最佳内存布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2734344/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com