В моем приложении возникают проблемы с памятью, и я пока не нашел способа выяснить, какие объекты / классы используют эту память.
Приложение простое: контроллер представления с представлением галереи изображений (представление сетки, как в Instagram Explore; представление коллекции с ячейками XIB), и когда вы нажимаете одну из них, вы переходите на следующий экран, который является тем же набором изображений, но в виде вертикального списка (uitableview с ячейками XIB). Изображения загружаются из Интернета асинхронно.
Объем памяти, используемой приложением, постоянно увеличивается при прокрутке на обоих экранах, а также увеличивается при каждом открытии экрана списка. Тогда единственный момент, когда используемая память уменьшается (и я имею в виду радикально, например, от 1,8 ГБ до 200 МБ), это когда он достигает предела устройства, и тогда проблема появляется снова и снова. Кроме того, иногда системе не удается уменьшить объем используемой памяти, и приложение вылетает («Прервано приложение iOS из-за проблемы с памятью»).
Я не думаю, что это проблема компоновки, я проверил все это, также использовал отладчик графа памяти и обнаружил там только проблемы "malloc", которые никуда не ведут, ни класс, ни строка, ни ничего. Кроме того, инструмент Instruments слишком сложен, и я пока не знаю, как с ним работать.
Я прочитал несколько уроков и попробовал некоторые решения, но ничего не помогло. Включено: 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/
Может ли кто-нибудь дать мне несколько других советов или руководств о том, как правильно отлаживать проблемы с памятью, чтобы иметь возможность выяснить их точное происхождение?