iPhone: Xcode, инструменты, распределение памяти. Что разумно?

Я использую инструменты для анализа использования памяти в разрабатываемом мной приложении для iPhone. Мне было интересно, каков разумный размер выделения памяти?

Когда я получаю информацию о своей цели, должен ли я отмечать флажки, чтобы игнорировать префиксы «NS», «CF» и «Malloc» или нет? Когда я не игнорирую их, я получаю то, что кажется довольно большим значением для общих байтов при запуске около 47 МБ, хотя живые байты составляют всего около 6 МБ. Когда я проигнорирую префиксы, я получу около 1 МБ в целом и 350 КБ в реальном времени. Что было бы хорошей причиной игнорировать или не игнорировать префиксы? В чем разница между общими и активными байтами?

И, наконец, как я могу уменьшить объем памяти, занимаемый моим приложением, если это необходимо?


person john    schedule 10.06.2011    source источник


Ответы (1)


Флажки для игнорирования NS, CF или Malloc просто позволяют вам отфильтровать различные подмножества общих выделений. Независимо от того, проверяете ли вы их, зависит от того, что вы ищете. Очевидно, что если оставить их все неотмеченными, вы получите наиболее полное представление, но если вы ищете что-то конкретное, вы можете проигнорировать другие категории.

«Живые» данные - это то, что не было опубликовано, тогда как «общие» - это все, что вы когда-либо выделяли, даже если они были выпущены.

Имейте в виду, что инструмент «Распределение» дает вам только представление об используемой вами динамической памяти. Это довольно узко. Ваше приложение прямо или косвенно использует память для других целей. Кроме того, фрагментация памяти может привести к тому, что общее использование памяти будет намного выше, чем это отображается в средстве распределения, поскольку операционная система предоставляет память в виде страниц размером 4 КБ.

Вы должны использовать инструмент VM Tracker, чтобы увидеть общее использование памяти вашими приложениями.

person Brent Marshall    schedule 27.06.2011