Комментарии 6
Производительность
За счёт плоской структуры компонентов открываются широкие возможности оптимизации работы с памятью. Например в python можно использовать слоты для объектов
Справедливости ради слоты можно и без ECS использовать.
Имхо, применение ECS в Python скорее вызовет замедление логики, чем ускорение. Из-за порождения кучи лишних объектов: больше аллокаций/деаллокаций, больше скачков между кусками памяти, больше нагрузки на сборщик мусора.
Можно попытаться это обойти с помощью numpy
и подобных штук, но профит спорный.
Хм, а будет объективный прирост производительности благодаря ecs like организации в питоне?
Там же суть в том, что ты объекты в памяти располагаешь по порядочку, а действия группируешь, что позволяет эффективнее использовать кеш процессора для однотипных операций.
А в питоне, если не сводить все к массивам базовых типов, будет все равно выделение места под класс на куче.
Или data class (slots=true) это как раз про это?
Реализация и применение Entity Component System на примере python