Size: a a a

2021 June 26

RM

Roy Mustang in C++ Together 2.0
SPSCQueue
источник

RM

Roy Mustang in C++ Together 2.0
Дерзай
источник

NK

Nikolay Kononov in C++ Together 2.0
можно начать со спинлока?
источник

NK

Nikolay Kononov in C++ Together 2.0
он говно и пиздит кеши
источник

NK

Nikolay Kononov in C++ Together 2.0
так никто спинлок не пишет
источник

RM

Roy Mustang in C++ Together 2.0
ээ нее
источник

RM

Roy Mustang in C++ Together 2.0
Ты давай очередью займись
источник

RM

Roy Mustang in C++ Together 2.0
Спинлоки там не дописаны
источник

NK

Nikolay Kononov in C++ Together 2.0
ты же любишь перфоманс, надо использовать циклический буффер с выравниванием по кеш линии и писать аналог тикетлока
источник

NK

Nikolay Kononov in C++ Together 2.0
в линуксе он называется MCS lock - https://github.com/torvalds/linux/blob/master/kernel/locking/mcs_spinlock.h там вместо циклического буффера (что говно) делается буффер из одновсязного списка который хранится на стеке
источник

RM

Roy Mustang in C++ Together 2.0
Так погоди, дай я еще один коммит кину
источник

RM

Roy Mustang in C++ Together 2.0
Удалю функции extract и emplace
источник

RM

Roy Mustang in C++ Together 2.0
Они там не используются после рефакторинга
источник

RM

Roy Mustang in C++ Together 2.0
Выравнивание для storage?
источник

NK

Nikolay Kononov in C++ Together 2.0
Ну я ничего не говорю, просто если тебе нужен норм спинлок писать аналог TAS лока это фигня
источник

RM

Roy Mustang in C++ Together 2.0
Я на бенчмарках только просадку увидел при выравнивании по кэш линии
источник

RM

Roy Mustang in C++ Together 2.0
хз почему
источник

RM

Roy Mustang in C++ Together 2.0
Изначально storage была по кэш линии выравнена
источник

NK

Nikolay Kononov in C++ Together 2.0
тикетлок на циклическом буффере норм тема
источник

RM

Roy Mustang in C++ Together 2.0
Да спинлок потом
источник