ищет утечки памяти в другом месте в нашей системе, я создал веб-страницу 20 МБ с тегом meta refresh. идея заключалась в том, чтобы переместить много данных через наш код данных, чтобы подтвердить стабильность памяти.
<html>
<meta http-equiv="refresh" content="1">
<body>
<div style="border: 1px solid red">
Content loading
</div><!-- 20mb worth of comments -->
</body>
</html>
то, что я нашел, было отображением uiwebview, показывающим, что страница обновления мета обновляет память очень, очень быстро. память приложения достигает 300 мб примерно за 2 минуты и получает снимок с предупреждением о низком запоминании, даже если наш код не воспроизводится.
Я остановил загрузку обновления и попытался отключить веб-просмотр.
Я пробовал loadurl: "about: blank", loadhtml: "", закрыть javascript.
Я также попытался написать рекурсивный removeFromSuperview и removeFromParentViewController, считая, что приватное scrollview в веб-просмотре является проблемой памяти, но эта память никогда не освобождается. Я не могу найти надежный способ закрыть, dealloc webview, когда мы с ним закончим.
Мы жили с медленной скоростью webview, протекающей довольно долгое время, и действительно хотим найти способ гарантировать, что веб-просмотр может быть полностью очищен, когда мы с ним закончим. Недавно мы конвертировали приложение в ARC, которое не меняло скорость памяти.
Я рассматриваю попытку рекурсивного цикла через все объекты в webview и посмотреть, могут ли они быть освобождены. инструменты показывают 20 мб cfdatas, живые, для каждого обновления страницы 20 МБ, но не показывают их как утечки. если я только доставляю заголовок ответа и выполняюсь клиенту urlprotocol, который мы запускаем стабильно, так что был ale, чтобы подтвердить memleaks в остальной части пути данных, но это такой драматический результат тестового примера, который я надеюсь найти решение для проверки memview mem once и для всех.
Есть ли у кого-нибудь лучшие идеи или кто-нибудь попытался перепроверить объекты в uiwebview?