for(auto& entity : memoryManager.getItems()) entity->update(mFrameTime);

If memoryManager contains 1000 items, does memoryManager.getItems() get called 1000 times or only one at the beginning of the loop?

Does the compiler run any optimization with -O2 (or -O3)?

(memoryManager.getItems() returns a std::vector<Entity*>&)

Edit
Report