4

最近、スラブ システムのキャッシュ カラーリングについて読みましたが、理解できませんでした。さまざまなスラブ内のオブジェクトにさまざまなオフセットを追加するキャッシュ カラーリングがパフォーマンスを向上させるのはなぜですか?

私の最初の推測は次のとおりです。キャッシュ オフセットを持つスラブ アロケーターは、スラブの最初のオブジェクトを異なるキャッシュ カラーのメモリに配置しようとします。クライアントがこれらのスラブから N 個のオブジェクトを割り当てると、N 個のキャッシュ カラーを持つ N 個のオブジェクトが取得されます。

私の推測は正しいですか、それとも誰かがこれについてもっとヒントをくれますか? どうもありがとう、

4

2 に答える 2

5

「 Understanding Linux virtual memory」本 - スラブ アロケータの章を読むことをお勧めします。それが引用するように、

スラブ アロケータの最後のタスクは、最適なハードウェア キャッシュの使用です。オブジェクトがスラブにパックされた後にスペースが残っている場合、残りのスペースはスラブの色付けに使用されます。スラブ カラーリングは、異なるスラブ内のオブジェクトがキャッシュ内の異なるラインを使用するようにするスキームです。オブジェクトをスラブ内の異なる開始オフセットに配置することで、オブジェクトは CPU キャッシュ内の異なるラインを使用する可能性が高くなり、同じスラブ キャッシュのオブジェクトが互いにフラッシュする可能性が低くなります。

これはあなたの疑問に答えると思います。

于 2014-05-12T10:12:55.590 に答える
0

別の質問で同じ質問に答えます。参照できます。

https://stackoverflow.com/a/57345687/3762471

于 2019-08-04T10:40:40.493 に答える