gpt4 book ai didi

iphone - 如何测量 OpenGL ES 的真实 FPS 性能?

转载 作者:可可西里 更新时间:2023-11-01 04:16:52 25 4
gpt4 key购买 nike

我意识到这是两个不同的东西:

绘图,并将其显示在屏幕上。

因此,虽然您可能会以 60 FPS 的速率从 CADisplayLink 进行每次调用,但如果您的绘图操作花费的时间略长于 1/60 秒,那么理论上您最终会达到 30 FPS,因为您错过了所有其他操作有机会通过渲染管道。

好的;知道这一点,记住开始 NSTimeInterval 并在运行循环中递增帧计数器,然后在结束时检查是否已经过去一秒并计算最后一秒的 FPS 似乎是无稽之谈。

我想要一种从屏幕上的 OpenGL ES 实际获取真实 FPS 值的方法。我查看了 Xcode 3.2.6 中的仪器,但找不到一个。但我记得有一种方法可以获得该 FPS 值。真实的。

如何?

最佳答案

通过帧率测量 OpenGL ES 性能 may not be the best approach .我自己开始记录帧时间,这似乎可以更准确地评估我的整体渲染性能。将你的渲染封装在类似

的东西中是微不足道的
CFTimeInterval previousTimestamp = CFAbsoluteTimeGetCurrent();

// Do your OpenGL ES frame rendering here, as well as presenting the onscreen render buffer

CFTimeInterval frameDuration = CFAbsoluteTimeGetCurrent() - previousTimestamp;
NSLog(@"Frame duration: %f ms", frameDuration * 1000.0);

获取渲染时间。如果你想要它,你的瞬时帧率是上面代码中 frameDuration 的倒数。

注意整个帧渲染的时间,因为 iOS 和其他移动设备中基于图 block 的延迟渲染器可能会通过将它们延迟到帧被绘制到屏幕之前来隐藏特定渲染操作的真实成本。

但是,如果您想从 Instruments 获得不太精确的帧率,您可以使用 OpenGL ES Driver instrument 来实现,它会将每秒核心动画帧数报告为其记录的统计数据之一:

OpenGL ES Driver instrument

关于iphone - 如何测量 OpenGL ES 的真实 FPS 性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6586635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com