Что это означает, если Live Bytes становится больше с течением времени, в то время как инструмент Leaks не обнаруживает утечек памяти? - PullRequest
1 голос
/ 29 ноября 2011

Мое приложение запускается с объемом около 3 МБ активных байтов, а после 10 минут использования оно достигает 6 МБ и также получает некоторые предупреждения о недостаточном объеме памяти. Но утечки памяти не обнаружены инструментом Leaks.

Что может быть причиной этого?

Ответы [ 3 ]

2 голосов
/ 30 ноября 2011

Как говорит @ viggio24, вполне может быть проблема с "оставленной памятью", например, с ошибками, которые не освобождаются, сохраняются циклы и т.д.1004 *.

Обычно вы делаете Heapshot, запускаете некоторую процедуру, делаете еще один Heapshot для нескольких итераций.Это поможет найти потерянную память, но не утечку.Я часто использую этот метод,

Я использовал Heapshot много раз с большим преимуществом, большое спасибо бомжу.

1 голос
/ 30 ноября 2011

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

1 голос
/ 29 ноября 2011

Вы просто используете много памяти. Утечка происходит, когда вы загружаете что-то в память, а затем прекращаете ссылаться на нее, прежде чем освободить ее. В вашем случае звучит так, будто вы загружаете в память элементы, на которые у вас все еще есть активные ссылки, поэтому они не отображаются как утечки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...