iPhone: Xcode, инструменты, распределение памяти. Что разумно? - PullRequest
3 голосов
/ 10 июня 2011

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

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

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

1 Ответ

5 голосов
/ 27 июня 2011

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

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

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

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

...