我正在使用一系列着色器在 iPhone (3GS/4/iPad) 上执行实时图像处理。fps不是我想要的。
有什么工具可以帮助我找出瓶颈是什么?
我假设您已经知道模拟器上的性能测试毫无价值,并且您正在测试真实金属,因此Instruments始终是一个不错的起点 - 特别是在您的情况下,您会对OpenGL ES
和OpenGL ES Analyzer
仪器感兴趣。
一般来说,对于 GLSL,OpenGL.org 网站上有一个常见的 GLSL 错误列表。O'Reilly 实验室的“iPhone 3D 编程”一书有一些进一步的提示,例如避免条件语句中的昂贵操作,以及注意纹理查找。
此外,这将取决于您正在执行哪种图像处理;如果您尝试应用大量的 Photoshop 类过滤器,这会使四核暂停渲染,那么在低端手机上成本会很高。
目前唯一可用的工具是PVRUniSCo 编辑器,它会为您的着色器中的每一行代码提供循环计数(尽管似乎只在 Windows 上)。