iphone - cocos2d 应用程序中无法解释的 16MB malloc?

标签 iphone objective-c cocos2d-iphone

我正在开发一个基于 cocos2d 的应用程序,现在正在针对分配工具对其进行测试,以检查是否存在泄漏。我注意到有时会发生 16 MB 的 malloc,但我实际上无法说出原因。我猜这与cocos框架有关,但我不确定。

您是否也经历过同样的行为?有时应用程序会在测试过程中因此崩溃。

提前谢谢

安德里亚

一些进一步的细节

看来问题与cocos缓存 Sprite 的方式有关。我正在使用 zwoptex 纹理图集。这是调用堆栈

+[CCSpriteSheet spriteSheetWithFile:capacity:] CCSpriteSheet.m:69 
-[CCSpriteSheet initWithFile:capacity:] CCSpriteSheet.m:104 
-[CCTextureCache addImage:] CCTextureCache.m:243 
-[CCTexture2D(Image) initWithImage:] CCTexture2D.m:207 
-[CCTexture2D(Image) initPremultipliedATextureWithImage:pixelsWide:pixelsHigh:]    

在执行的那一刻,我实际上正在加载我拥有的最大的 Sprite 。大约是900KB。而其他的则很少。是不是我使用cocos的方式不对? 例如,是否存在旨在减少此类峰值的参数。 不过,我希望一旦缓存了图像,我就不会在任何需要它的时候加载它。相反,每当我一段时间不使用此类 Sprite 时,我都会遇到新的峰值。 然后我猜测如果我保留图像,缓存将不会被清除,但尽管我保留了它,但 malloc 仍然发生。

我还想知道为什么在模拟器而不是设备上运行时应用程序 RAM 占用空间从 3MB 变为 80MB

最佳答案

我在使用 iSimulate 时也经历过同样的情况(注册加速度计数据和多点触控(>2)并传输到 iSimulator)。

关于iphone - cocos2d 应用程序中无法解释的 16MB malloc?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5318057/

相关文章:

iphone - 使用 objective-c 获取任何一个月的所有日期

objective-c - obj-c 从数组中获取字符串

android - 进入后台时cocos2d-x游戏崩溃

ios - 配置 iAD 后应用程序在设备上崩溃,但在模拟器上则不然

iphone - 如何从 iPhone SDK 中的视频中提取屏幕截图?

iphone - appdelegate 中的 clickedButtonAtIndex 未被调用

ios - 在通话过程中打开应用程序时相机卡住

iphone - CCParticle meteor cocos2d

iphone - Xcode 4 下载

iphone - 自定义 NavigationBar 按钮在 iOS 7 中看起来不同