False Sharing: два ядра, никаких lock, а всё тормозит. Почему?
Два потока пишут в разные переменные a и b, блокировок нет, а код всё равно упирается в потолок. Виноват false sharing: a и b лежат в одной cache line на 64 байта, и каждая запись одного ядра сбрасывает копию линии у второго. CPU гоняет кэш туда-сюда вместо полезной работы. Лечится разнесением горячи
https://youtube.com/shorts/piUddxoKcoY?feature=share
Post #2122
978