Я занимаюсь разработкой приложения на основе cocos2d и сейчас проверяю его с помощью инструмента Allocations Tool, чтобы проверить наличие утечек.Я заметил, что есть моменты, в которых происходит malloc 16 МБ, и я не могу сказать, почему.Я предполагаю, что это что-то связанное со структурой Cocos, но я не уверен в этом.
Вы когда-нибудь испытывали такое же поведение?Иногда приложение вылетает из-за этого во время тестов.
Заранее спасибо
Андреа
Некоторые дополнительные сведения
Кажется, проблема связана с тем, как Cocos кэширует спрайты.Я использую текстурный атлас 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:]
В этот момент выполнения я загружаю самый большой спрайт, который у меня есть.Это около 900 КБ.Пока других очень мало.Я неправильно использую кокосовые орехи?Например, есть параметры, направленные на снижение таких пиков.Однако я ожидаю, что после кэширования изображение не будет загружаться в любое время, когда мне это нужно.Вместо этого я испытываю новые пики каждый раз, когда я не использую такой спрайт в течение некоторого времени.Затем я предположил, что кэш не будет очищен, если я повторно создаю изображение, но, несмотря на то, что я сохраняю его, malloc все еще происходит.
Я также хотел бы знать, почему объем ОЗУ приложения изменяется с 3 МБ до 80 МБ при работе на симуляторе вместо устройства