Дизайн, ориентированный на данные
-
Дизайн, ориентированный на данные
- Оптимизация программ для эффективного использования кэша процессора
- Используется в разработке видеоигр для улучшения производительности
-
Приверженцы и примеры
- Майк Эктон, Скотт Мейерс и Джонатан Блоу поддерживают подход
- Параллельный массив является ключевым примером
-
Парадигма программирования
- Споры о совместимости с другими парадигмами из-за акцента на данных
-
Исторический контекст
- Популярность в середине-конце 2000-х с появлением новых игровых консолей
- Игровые консоли имеют слабые CPU для увеличения мощности GPU
- Процессоры 7-го поколения использовали высокие тактовые частоты и глубокие конвейеры
-
Проблемы производительности
- Массовое потребление данных увеличивает вероятность сбоев в кэше
- Необходимость улучшения схем доступа к памяти для устранения узких мест
-
Контраст с объектно-ориентированным программированием
- ООП приводит к плохой локализации данных из-за полиморфизма
- ООП организует код вокруг типов данных, а не физических полей
- Программирование, ориентированное на данные, учитывает компоновку данных в первую очередь
-
Дополнительные ресурсы
- Ссылки на кэш процессора, программирование на основе данных, систему компонентов сущности и схему доступа к памяти
- Упоминание разработки видеоигр в качестве рекомендации
Полный текст статьи: