iOS デバイスのカメラからのビデオに対してリアルタイムの画像処理を行う、Apple のGLCameraRippleの例に基づくアプリがあります。
Apple の Instruments は、OpenGL が ~30 ~ 40 fps (25 ~ 30 ミリ秒ごとに 1 フレーム) で実行されていると報告しています。
ただし、mach_absolute_time を使用して glkView:drawInRect への呼び出し間の時間を測定すると、ループ時間は 50 ミリ秒 (約 20 fps) です。この速度は、Instruments が報告した速度のほぼ半分です。
では、Apple の Instruments は (ほぼ 100%(!)) 間違っているのでしょうか? それとも、glkView:drawInRect への呼び出しのタイミングが間違っているのでしょうか?
描画サイクルごとに glkView:drawInRect が呼び出されないため、Apple のインストゥルメントは不正確であるように思われますか?
他の人が同じ不一致を指摘していることがわかりましたが、どちらが実際に正しいかについて明確な答えはありません.
なぜ不一致なのですか?Apple の機器が間違っている場合 - glkView:drawInRect への往復時間を測定することは、FPS を決定するための正しいアプローチですか?