Что действительно означает в стойке и переходной колонке в шаблоне Instrumentation Allocation в Xcode

Я пытаюсь понять, что означает переходный и постоянный столбцы в Шаблоне выделения. Из учебника http://www.raywenderlich.com/97886/instruments-tutorial-with-swift-getting-started Я нашел "Столбец Persistent хранит подсчет количества объектов каждого типа, которые в настоящее время существуют в памяти. В столбце Transient показано количество объектов, которые существовали, но с тех пор были освобождены. Стойкие объекты используют память, у переходных объектов были свои выпущена память." введите описание изображения здесь

В соответствии с приведенным выше объяснением. Из выбранной строки в таблице статистики из изображения можно сказать, что в настоящее время в памяти существуют 2 объекта NSFileManager и 19 нет. объектов создаются и уже выпущены.

Но что это означает для оптимизации или производительности для приложения iOS? Что-то вроде этого, здесь полное отсутствие переходного объекта в 19, которое значительно больше, оно должно быть небольшим, если это возможно, для повышения полезности использования приложения или чего-то еще?

Ответ 1

Оптимизация производительности в краткосрочной перспективе - поддержание вашего приложения живым и отзывчивым. Ключевой показатель для оптимизации не является временным или постоянным числом для одного объекта.

На основе информации, которую ваш NSFileManager использует 16 байтов для каждого объекта. Таким образом, это 32 в настоящее время постоянных (2 * 16) и 336 (21 * 16) Total.

Высокая постоянная память указывает, что ваш текущий след очень высок для данного объекта. Высокая общая память указывает, что ваш след в прошлом мог быть высоким (если подмножество этих распределений было одновременным)

While optimizing you should focus on mainly two aspects:
 1. How much is the minimum memory foot print when your app loads.
 2. How much is the maximum memory foot print. (You need to come up with use cases to figure out this one). 

По мере увеличения объема памяти ваше приложение замедляет производительность из-за нескольких свопов страниц, выполняемых ОС для освобождения памяти. Вы можете отслеживать это с помощью инструмента отслеживания VM. Оптимизация означает, что ваш средний размер памяти ниже этой точки.

Ответ 2

Постоянные объекты используют память, временным объектам высвобождается память.

Первый говорит # Постоянный. Это количество постоянных объектов, на которые в данный момент активно ссылаются в вашем проекте. Второй говорит # Переходный. Это количество освобожденных объектов, которые раньше были сильно сохранены, но больше не существуют. Это удобно, потому что позволяет узнать, правильно ли очищается объект или объект больше не сохраняется в определенный момент времени. Третий говорит # Всего. Это общее количество постоянных и временных объектов, добавленных вместе.