2 のべき乗がキャッシュの競合に与える影響について読んだ後、午後はプロセッサ キャッシュについて調べました。今度は、この新しい知識をマルチスレッド プログラムのメモリ アロケータに適用したいと考えています。しかし、私はまだそれを完全に理解していません。
私はプロセッサが 2 のべき乗を好むという印象を受けていたので、私のアロケーターは要求されたサイズを次の 2 のべき乗に丸め、ページをこのサイズの倍数にスライスして配布します。ページがいっぱいになると、新しいページがマップされ、同じようにスライスされます。これにより、ページへの非常に類似した予測可能なオフセットが発生します。
この問題を回避するには、アロケーターをどの程度適応させる必要がありますか? たとえば、アドレスを少しランダム化する必要がありますか?それとも、そもそも 2 のべき乗を使用することにうんざりしているのでしょうか?
ありがとう!