A note for future discussions:

At each iteration, we load new instructions and new data from non-contiguous memory blocks. This make the CPU cache quite inefficient if me multiply the iterations.

This is the reason why the structure of the engine should be redesigned in a real ECS, and the loop splitted in small parts for each component.

This is not specific for this PR since it is like that since the beginning.