So I have a question about ECS and how to structure it in a way that's performant in C++. Say I want to have components that are just data, and systems that are just logic, and I want to execute all of the Update functions for all of the systems, passing them a list of component tuples to operate on.
Would having the systems submit their Update method delegates as function pointers to an update list be more performant than adding the systems themselves to that list and using polymorphism to call a virtual Update method? Or is it indifferent in terms of what option I go with?
I was also wondering if anything changes if say, this is implemented in C# for example with delegates/Actions.