Я просто знаю основные идеи по выравниванию распределения памяти.Но я не особо заботился о проблеме выравнивания, потому что я не программист на ассемблере, также не имел опыта работы с MMX / SIMD.И я думаю, что это одна из преждевременных оптимизаций.
В наши дни люди все больше и больше говорят о попадании в кэш, согласованности кэша, оптимизации по размеру и т. Д. Некоторые исходные коды даже выделяют память, явно выровненную по кэш-памяти ЦПлинии.
Честно говоря, я не знаю, сколько размер строки кэша моего процессора i7.Я знаю, что не будет никакого вреда с выравниванием большого размера.Но окупится ли это без SIMD?
Скажем, в программе 100000 элементов данных по 100 байт.И доступ к этим данным - самая интенсивная работа программы.
Если мы изменим структуру данных и приведем в соответствие все данные размером 100 байт, выровненные по 16 байтам, можно ли получить заметный прирост производительности?10%?5%