iPhone Development - Уроки в управлении памятью

Попробуйте выполнить

window.location.assign( window.location.href + '#abcd')

, если вы хотите открыть новый URL-адрес в той же вкладке, то вам нужно добавить «https: //» в новый URL-адрес. Пример: если ваш новый URL-адрес www.google.co.in, то значение переменной

var newurl = 'https://' + 'www.google.co.in' ;

, затем используйте.

window.location.replace(newurl);

Примечание. Если новый URL-адрес не поддерживает https, http также будет работать.

8
задан Ben Blank 21 January 2009 в 18:18
поделиться

5 ответов

Теперь, когда мы имеем, "просто говорят, что никакие" ответы для автовыпущения из пути я думал, что включу подсказку, как использовать автовыпуск эффективнее. Что бы там ни было не общая попытка полностью избежать автовыпуска - если ни по какой другой причине, чем, потому что Apple обеспечивает столько удобных методов, которые вручают Вам автовыпущенные объекты.

Вы не можете только сказать пулу автовыпуска свободному объекты, что не используете. Нет никакой сборки "мусора", и как еще это собирается знать?

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

Автовыпуск объединяет вложенное множество, поэтому имейте это в виду, если Вы делаете это. При выпуске пула автовыпуска удостоверьтесь, что это - последний раз выделенный пул и не некоторый другой один.

8
ответ дан 5 December 2019 в 15:27
поделиться

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

Нужно отметить, что из-за фрагментации памяти, что выделение и освобождение блока памяти, может казаться, не возвращают Вас туда, где Вы запустили с точки зрения измеримой "свободной" памяти.

Tony

1
ответ дан 5 December 2019 в 15:27
поделиться

По причинам производительности Apple рекомендует сохранить/выпустить объекты сами, когда это возможно. автовыпуск их может вызвать избыточное использование памяти, поскольку автовыпущенные объекты не всегда сразу выпущены.

Другими словами, если Вы знаете, что сделаны с объектом, явно выпускаете его.

1
ответ дан 5 December 2019 в 15:27
поделиться

UITableView имеет способ снова использовать ячейки таблицы, которые не отображаются больше. Тот путь, если Вы только отображаете 6 ячеек на экране сразу, он не продолжает создавать больше, как Вы прокручиваете, но снова использует ячейки, которые ушли экран. каждый раз, когда Вы хотите создать новую ячейку, сначала запросить tableview, чтобы видеть, имеет ли он кого-либо к повторному использованию и если не затем создают новый.

пример этого может быть найден на слайде 55 из standford примечания курса iPhone, найденного здесь: http://www.scribd.com/doc/7671058/Standford-CS-193P-11Performance

1
ответ дан 5 December 2019 в 15:27
поделиться

По данным Apple, Вы не должны использовать автовыпуск и вместо этого должны сохранить и выпустить объекты явно по мере необходимости. автовыпуск не выпустит объект, как только его функция закончена. Если в tableview Вы используете изображения, загруженные с веб-сервиса, пытаетесь кэшировать эти изображения и снова использовать их, если это возможно. Другая опция состоит в том, чтобы только получить те изображения, которые отображаются.

0
ответ дан 5 December 2019 в 15:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: