У меня проблемы с памятью в моем приложении, и я пока не нашел способа узнать, какие объекты/классы используют эту память.
Приложение простое, контроллер просмотра с представлением галереи изображений (представление сетки, как в Instagram Explore; представление коллекции с ячейками xib), и когда вы нажимаете на одно из них, вы переходите к следующему экрану, который представляет собой тот же набор изображений, но как вертикальный список (uitableview с ячейками xib). Изображения загружаются асинхронно из Интернета.
Память, используемая приложением, постоянно увеличивается, когда я прокручиваю оба экрана, а также быстрее каждый раз, когда я открываю экран списка. Затем единственный момент, когда используемая память уменьшается (и я имею в виду резко, например, с 1,8 ГБ до 200 МБ), — это когда она достигает предела устройства, а затем проблема возникает снова и снова. Кроме того, иногда системе не удается уменьшить объем используемой памяти, и приложение аварийно завершает работу («Приложение iOS прекращено из-за проблем с памятью»).
Я не думаю, что это проблема макета, я все это проверил, также использовал отладчик графа памяти и нашел там только проблемы с «malloc», которые никуда меня не ведут, ни класса, ни строки, ничего. Кроме того, инструмент «Инструменты» слишком сложен, и я пока не знаю, как с ним справиться.
Я прочитал несколько руководств и попробовал некоторые решения, но ничего не помогло. Сюда включены: https://krakendev.io/blog/weak-and-unowned-references-in-swift, http://iosbrain.com/blog/2018/07/22/finding-memory-leaks-with-the-xcode-memory-graph-debugger-and-fixing-leaks-with-unowned/, https://www.youtube.com/watch?v=1LnipXiSrSM&t=1697s, https://developer.apple.com/videos/play/wwdc2018/416/
Может ли кто-нибудь дать мне другие советы или руководства о том, как правильно отлаживать проблемы с памятью, чтобы узнать их точное происхождение?