Ios Cocos2D SpriteBatchNode vrs。SpriteFrameCache。。。我看不到任何性能差异

Ios Cocos2D SpriteBatchNode vrs。SpriteFrameCache。。。我看不到任何性能差异,ios,cocos2d-iphone,Ios,Cocos2d Iphone,我试着用两种方法 正在使用SpriteFrameCache在缓存上添加.png文件 添加.plist和spritebatchnode添加相应的.png文件,我没有看到任何性能差异 在我的测试中,我不断添加具有相同图像的对象。。在这种情况下,一颗子弹。。。由于内存不足,应用程序最终崩溃。在SpriteFrameCache和SpriteBatchNode的两种情况下都发生了同样的事情,它们都将FPS降低到了30(应该是60)然后就崩溃了…我知道这个场景是不真实的。显然,如果我继续添加图像而不销毁不再

我试着用两种方法

  • 正在使用SpriteFrameCache在缓存上添加.png文件
  • 添加.plist和spritebatchnode添加相应的.png文件,我没有看到任何性能差异
  • 在我的测试中,我不断添加具有相同图像的对象。。在这种情况下,一颗子弹。。。由于内存不足,应用程序最终崩溃。在SpriteFrameCache和SpriteBatchNode的两种情况下都发生了同样的事情,它们都将FPS降低到了30(应该是60)然后就崩溃了…我知道这个场景是不真实的。显然,如果我继续添加图像而不销毁不再使用的对象,它的命运就是崩溃…但问题仍然存在


    我看到了相同的性能问题,但是我看到SpriteBatchNode只进行了一次draw调用,这是最佳性能实践。是否有人尝试过并能够确认性能差异,以及您如何在代码和应用程序中证明这种性能差异?

    很抱歉质疑您的测试,但性能提升是肯定的。。。确保您在真正的iOS设备上进行测试,最好是iPhone 4或更老的设备,并且您没有在紧密的for循环中添加对象,而是每秒添加25个左右的对象。有趣的。。。感谢您将在旧设备上试用。。。它真的对iphone4s产生了巨大的影响吗?实际上,在iphone4s上进行测试应该是很好的,你应该看到差异。但现在我想起来了,确保你也在屏幕上制作动画。有时屏幕FPS计数器不精确。请启用displayStats并查看抽签呼叫的号码。使用不同纹理和更大尺寸的精灵时,批处理节点效果更大。一开始可能不会有太多吸引人的小子弹精灵。对于单个纹理、微小、非旋转、非缩放的精灵,其性能差异可能低至10%。批处理可提高性能,精灵帧只是引擎渲染纹理图集较小部分所需的数据。恰好纹理地图集也有助于提高批处理效率,因为您可以从同一纹理绘制更多对象