Я работаю над игрой для iPhone, которая получает предупреждение памяти о том, что у меня недостаточно опыта для интерпретации. Я смотрел учебник iTunesU, но я все еще не очень хорош в этом.
Я получил различные утечки памяти во время запуска моей игры, и я хотел понять, как правильно интерпретировать отображение трассировки стека в Instruments.
Я прикрепляю скриншот вывода инструмента ObjectAllocation . Даже когда я использую фильтр масштабирования, мне не удается отфильтровать данные в ObjectSummary
.
Пиковое использование памяти в 1 происходит, когда GameScene инициализируется и все данные загружен (ParallaxBackground, CCSpriteBatchNode) и создаются кадры спрайтов и маркеров (в массиве CCArray spriteFrames).
Большой синий пик появляется только во время загрузки, но приложение зависает, а затем вылетает только через некоторое время, и на графике я вижу, что использование памяти (синяя полоса) снизилось ... так что я не понимаю этого. Кроме того, всякий раз, когда я пытаюсь использовать инструмент утечки, приложение вылетает.
Я знаю, что это очень глупый вопрос для опытного человека, но мне просто нужна дополнительная помощь, чтобы начать работу с этим набором инструментов.
Я думаю, что проблема с памятью связана со спрайтами, которые я размещаю в классах кэша спрайтов, но я не уверен в этом и, следовательно, хотел исследовать это с помощью инструментов, но не могу выяснить, как увидеть, что является объектом, вызывающим ошибку. предупреждение о памяти и как получить доступ к трассировке стека..
PS: я работаю на iPod 4-го поколения и использую Cocos2D в качестве библиотеки.
РЕДАКТИРОВАТЬ: я также не понимаю, почему, если живые байты составляют всего 1,01 МБ, приложение вылетает и почему я все еще получаю предупреждение о памяти (см. черные флажки). Это связано с тем, что какой-то указатель ссылается на какую-то нулевую переменную или из-за чрезмерного выделения памяти? 1,01 Мб мне кажется мало..
РЕДАКТИРОВАНИЕ 2. Следуя совету Марион, я воспользовался Монитором активности и понял, что эффективное реальное использование памяти составляет 55,39 МБ. Я неправильно истолковал слово «живые байты». Я постараюсь углубиться в это и оставлю этот вопрос как неприемлемый на данный момент, чтобы позволить другим людям внести свой вклад. Если у меня не будет другого ответа в течение одного-двух дней, я отмечу текущий ответ как принятый. Спасибо!
Большое спасибо!