Зачем мне находить повторяющиеся строки с помощью HPROF Viewer and Analyzer?

Используя Android Memory Monitor, особенно его функцию «Dump Java Heap», я в настоящее время ищу утечки памяти в своем приложении. Слева от представления дампа / HPROF Android Studio есть возможность открыть «Задачи анализатора», и там вы можете указать машине «Обнаружить утечку действий» и «Найти повторяющиеся строки». Меня смущает последний вариант. Что он делает и чем полезен? Это должно быть более сложно, чем просто помочь тем неуклюжим разработчикам среди нас, которые дважды помещают одну и ту же строку в свою папку ресурсов. документы здесь не очень полезны (если мой поиск был тщательным достаточно), поскольку они только заявляют, что это помогает в случаях, «когда целевая программа имеет строки, которые повторяют значения». Когда это произойдет?


person kalabalik    schedule 30.06.2016    source источник


Ответы (1)


Насколько я знаю, это просто указывает на дублированные строки в памяти. Однако это полезно не только для поиска случаев, когда одна и та же строка была введена более чем в один ресурс. Например, поскольку строки являются неизменяемыми в Java, вы можете легко получить гораздо больше экземпляров строк, чем вы могли бы изначально понять. Если в вашем приложении много кода конкатенации строк, но вы не используете StringBuilder, или если ваше приложение выполняет какую-либо обработку строк/текста, довольно легко получить неожиданно большие объемы пространства, занимаемые строками. Но, наоборот, часто может быть относительно легко сделать оптимизацию, чтобы вернуть некоторое пространство (как только вы поймете, в чем проблема). Таким образом, можно сказать, что эта задача больше связана с «оптимизацией» памяти, чем с поиском утечки.

person SGill    schedule 04.07.2016