我正在考虑通过采用线性数组并将每个元素写入另一个数组中的任意位置(从 CPU 的角度来看是随机的)来优化程序。我只做简单的写入而不是读回元素。
我知道经典 CPU 的分散读取可能会非常慢,因为每次访问都会导致缓存未命中,从而导致处理器等待。但我认为分散写入在技术上可能很快,因为处理器不等待结果,因此它可能不必等待事务完成。
不幸的是,我不熟悉经典 CPU 内存架构的所有细节,因此可能会出现一些复杂情况,这也可能导致速度很慢。
有没有人试过这个?
(我应该说我正在尝试反转我遇到的问题。我目前有一个线性数组,我从中读取任意值 - 分散读取 - 由于所有缓存未命中,它非常慢。我的想法是我可以将此操作转换为分散的写入以显着提高速度。)