занятая память постоянно увеличивается, но утечки памяти нет - PullRequest
0 голосов
/ 29 июня 2019

Я разработал приложение для загрузки веб-страниц с сайта. Для огромного веб-сайта он будет работать долго. Я заметил, что занятая память постоянно увеличивалась (с 30 до 300 м после загрузки 2600 веб-страниц), но в приборе утечки памяти нет.

enter image description here

enter image description here

после загрузки 3648 веб-страниц, информация

enter image description here

enter image description here

После того, как я остановил процедуру загрузки, занятая память не уменьшается для освобождения памяти.

Я меняю весь код

[NSString stringWithFormat:@"someThing"];

до

[[NSString alloc] initWithFormat:@"someThing"];

небольшое улучшение, занимаемая память падает до 300 м

ваш комментарий приветствуется

1 Ответ

1 голос
/ 29 июня 2019

Эта диаграмма представляет собой общее количество выделений, а не текущее использование памяти. «Постоянный» столбец (выделения, которые не были освобождены) составляет около 40 МБ. Это говорит о том, что вы в разное время выделили около 5,68 ГБ данных и выпустили почти все. Вот почему красная полоса почти полностью бледно-красная, с небольшим красным цветом слева.

Это говорит о том, что могут быть способы повышения производительности путем повторного использования большего объема памяти, а не ее выделения и освобождения (что занимает очень много времени). Или, возможно, избегая ненужных временных выделений. Но если у вас нет проблем с производительностью, здесь нет никаких проблем.

...