Pull to refresh

Comments 6

Производительность

За счёт плоской структуры компонентов открываются широкие возможности оптимизации работы с памятью. Например в python можно использовать слоты для объектов

Справедливости ради слоты можно и без ECS использовать.

Имхо, применение ECS в Python скорее вызовет замедление логики, чем ускорение. Из-за порождения кучи лишних объектов: больше аллокаций/деаллокаций, больше скачков между кусками памяти, больше нагрузки на сборщик мусора.

Можно попытаться это обойти с помощью numpy и подобных штук, но профит спорный.

Бесспорно в python это будет не самая эффективная реализация, но я не хотел усложнять её понимание такими оптимизациями.

Хм, а будет объективный прирост производительности благодаря ecs like организации в питоне?
Там же суть в том, что ты объекты в памяти располагаешь по порядочку, а действия группируешь, что позволяет эффективнее использовать кеш процессора для однотипных операций.
А в питоне, если не сводить все к массивам базовых типов, будет все равно выделение места под класс на куче.
Или data class (slots=true) это как раз про это?

(slots=true) даёт бонус к скорости доступа к атрибутам класса и позволяет экономить память под отдельный объект. Но проблема выделения памяти под множество объектов слотами всё же не решается.

То есть это просто про упаковку полей?

Sign up to leave a comment.

Articles