aumentar o acesso à memória de cache spsc_queue do lockfree

Eu preciso estar extremamente preocupado com a velocidade / latência no meu atual projeto multiencadeado.

O acesso ao cache é algo que estou tentando entender melhor. E não estou claro como as filas sem bloqueio (como o boost :: lockfree :: spsc_queue) acessam / usam memória no nível do cache.

Vi filas usadas onde o ponteiro de um objeto grande que precisa ser operado pelo núcleo do consumidor é empurrado para a fila.

Se o núcleo do consumidor exibir um elemento da fila, presumo que isso signifique que o elemento (neste caso, um ponteiro) já está carregado no cache L2 e L1 do núcleo do consumidor. Mas, para acessar o elemento, ele não precisa acessar o ponteiro encontrando e carregando o elemento pelo cache L3 ou pela interconexão (se o outro encadeamento estiver em um soquete da CPU diferente)? Nesse caso, seria melhor simplesmente enviar uma cópia do objeto que poderia ser descartado pelo consumidor?

Obrigado.

questionAnswers(1)

yourAnswerToTheQuestion