Слейте его каждый раз.Как уже говорили другие, слив автозапуска дешевый.
Более того, НЕ слив его может быть очень дорогостоящим.Если у вас в пуле авто-выпусков достаточно ресурсов, чтобы вызвать подкачку страниц, вы вызываете дисковый ввод-вывод, а дисковый ввод-вывод буквально в тысячи, если не в миллионы раз дороже, чем запуск связанного списка, вызывающего выпуск содержимого.(и в таких системах, как iOS, у которых нет подкачки страниц, большое количество дополнительных объектов, ожидающих автоматического выпуска, может привести к предупреждению о нехватке памяти, что может привести к принудительному завершению работы приложений, или из-за того, что приложение переднего плана выпустит группу представлений Nib или что-то подобноезатем он должен будет воссоздать позже ... или он может просто заставить ваше приложение завершиться).
Даже если вы не используете «достаточно» дополнительной памяти, чтобы вызвать предупреждения о недостаточном объеме памяти или подкачку страниц, вы будетезапустив большой список элементов для слива.Больше доступа к памяти будет между вашим самым новым автоматическим выпуском и самым старым.Существует гораздо большая вероятность того, что самый старый элемент автоматического выпуска теперь находится дальше в иерархии памяти, поэтому ваш выпуск может иметь ошибки в кэше по сравнению с попаданием в кэш L1 или L2.Так что, может быть, в 100 раз дороже.Кроме того, память, которую вы освободили (и, возможно, была горячей в кэше), могла бы быть повторно использована другим объектом.
Таким образом, выполнение автоматического выпуска каждые 50-100 раз может даже не оказаться преждевременной оптимизацией.
Делайте один выпуск за цикл, а затем, если это проявляется как узкое место, делайте это каждые X раз, и убедитесь, что это делает его быстрее, а не медленнее.