Why Unity WaitForTargetFPS cost too much time?

I am new on unity profiler.I publish my game on iphone13 and debug it with unity profiler.

I set targetFrameRate 60, so one frame should cost 16.67ms.

However I find that PlayerLoop cost 33.48ms and WaitForTargetFPS cost 27.09ms.Subtraction equals 6.39ms, far less then 16.67ms. I have checked the render thread and it is waiting all the time. So I am really confused about this. Why WaitForTargetFPS cost so much and without WaitForTargetFPS this frame can finish in 16.67ms?

(I am not an English native speaker so if my expression is not clear please correct me. And Thanks)

27 ms represents idle time at the peak when this 16 ms target was missed resulting in 32 ms time window.

WaitForTargetFPS is often a positive sign of frame rate regulation, not necessarily a performance problem in itself. Focus on optimizing the actual tasks within PlayerLoop to reduce overall frame time and potentially decrease WaitForTargetFPS as a result.

iOS might be throttling your app, maybe due to heat or for battery optimization purposes. Though you can also try logging out the value in Application.targetFrameRate to make sure nothing else changed your setting.