Он добавляет несколько переменных-дополнителей. Я предполагаю, что это сделано для того, чтобы привести его в соответствие со строкой кэша для повышения производительности.
У меня есть несколько вопросов.
Почему это сделано именно так?
Это переносимый метод, который будет
работать всегда
В каких случаях лучше всего использовать __attribute__
( (выровнено (64))) вместо этого.
почему заполнение перед указателем буфера может повысить производительность? разве в кеш не загружается просто указатель, так что на самом деле это всего лишь размер указателя?
В превосходной ограниченной очереди mpmc Дмитрия Вьюкова, написанной на C++ См.: http://www.1024cores.net/home/lock-free-algorithms/queues/bounded-mpmc-queue
Он добавляет несколько переменных-дополнителей. Я предполагаю, что это сделано для того, чтобы привести его в соответствие со строкой кэша для повышения производительности.
У меня есть несколько вопросов.
[list] [*]Почему это сделано именно так? [*]Это переносимый метод, который будет работать всегда [*]В каких случаях лучше всего использовать __attribute__ ( (выровнено (64))) вместо этого. [*]почему заполнение перед указателем буфера может повысить производительность? разве в кеш не загружается просто указатель, так что на самом деле это всего лишь размер указателя?