IT-словарь › Программирование › Структура массивов (SoA)

Структура массивов (SoA)

Программирование Svenska → Обновлено: 2026-10-25

Раскладка памяти, при которой каждое поле лежит в своём непрерывном массиве (x[], y[], z[]), а не в массиве целых структур, — это удобно для кэша и векторизации.

Противоположность — «массив структур» (AoS): {x,y,z}[], где поля каждого элемента лежат рядом. SoA выворачивает это наизнанку: x[], y[], z[] — каждое отдельно. Если обходить только одно поле у всех элементов, SoA читает лишь нужные кэш-линии, а простые массивы чисто векторизуются через SIMD. AoS же тратит пропускную способность на поля, которые вы даже не смотрели.

Это основа data-oriented design и способ, которым ECS-библиотеки хранят компоненты, — часто в виде разреженного множества на каждый тип. Минус: чтобы собрать все поля одного элемента, приходится читать из нескольких массивов.

← Назад к словарю