Я ищу, чтобы уменьшить использование памяти в моем приложении, и одно место, которое мы можем потратить впустую, - это использование нашего autoreleasepools. Я думаю, что сейчас у нас есть все, что уместно, но я не уверен, поэтому я хотел бы сделать некоторые измерения в стратегических точках и посмотреть, будет ли полезно использовать больше блоков @autoreleasepool.Как узнать о содержании autoreleasepools на iOS?
Я сделал некоторые исследования и выяснили, о следующих методах исследования autoreleasepools, которые, возможно, работали в прошлом, но, видимо, не больше, по крайней мере, в XCode 5:
+[NSAutoreleasePool showPools]
- это предназначено для печати информации об активных autoreleasepools, но, похоже, больше ничего не делает - XCode не считает, что это вещь_objc_autoreleasePoolPrint
- Я нашел несколько ссылок на эту функцию при переполнении стека , но XCode настаивает на том, что он не существует и не будет ссылаться на него если я объявляю его как экстерном
Наш кодовая достаточно большой, что просто вставляя дополнительные autoreleasepools везде бы дураки побегушках, так что я ищу способ, чтобы выяснить, сколько объектов «в пул "в любое конкретное время. Таким образом, я могу добавить больше пулов в те немногие места, которые им нужны, а не бросать их повсюду.
Если я должен быть в Инструментах или отладчике, чтобы найти это, это не проблема - это то, что мы будем использовать для тестирования, и не выходим в выпуск.
Благодарим за помощь!
Попробуйте добавить слабый атрибут импорта ('__attribute __ ((weak_import))') в extern '_objc_autoreleasePoolPrint'. –
Такая же ошибка компоновщика, к сожалению. :( – Colen