The vtable for an object being actively used will be in L1 cache, and when a virtual function is called in a loop, Intel&#x27;s CPUs have been able to predict the target for many, many years. ARM may not; I&#x27;ve never had recent to deeply investigate virtual call performance on iOS.<p>Finding calling via a function pointer to be faster than calling directly suggests that you were not actually measuring what you thought you were measuring.