我正在尝试追踪我正在编写的 iPhone OpenGL 游戏中的瓶颈。游戏本身是 2d 的,包含几百个纹理 Sprite ,每个 alpha 混合。
在纹理方面,我只使用绑定(bind)一次的单个 512x512 图集,所以我认为它不是带宽问题(至少不是来自纹理的上传)。
我使用仪器来跟踪 CPU 使用率、内存使用率和 OpenGL ES 使用率。在游戏的重要时刻,我看到了以下内容:
每秒帧数:20
中央处理器:60%
真实内存:17Mb
瓷砖利用率:21%
渲染利用率:45%
我对瓶颈可能是什么感到有些困惑?在成为瓶颈之前,CPU 使用率可以达到多高(我知道还有其他应用程序同时运行)? 60% 听起来对吗?
或者它可能是图形的数量?我猜如果平铺器 + 渲染器的利用率那么低,我猜不会。但我必须承认我不是阅读这些结果的专家。
任何关于我可能的瓶颈是什么,或者在哪里寻找一个的任何指示都将不胜感激!
最佳答案
CPU听起来有点高,你是不是用了很多sin/cos之类的三角函数?有时这些使用不当,即用于粒子系统。尽量将它们保持在最低限度,或者如果可能,请改用查找表。
Here 是一个很好的近似值讨论