使用
Android内存监视器,特别是其“转储Java堆”功能,我目前正在寻找我的应用程序内存泄漏.在Android Studio的转储/ HPROF视图的左侧,有一个选项可以打开“Analyzer Tasks”,您可以告诉机器“检测泄漏的活动”和“查找重复的字符串”.我对后一种选择感到困惑.它做了什么以及它如何有用?它必须比仅仅帮助我们这些笨拙的开发人员更复杂,他们将相同的字符串两次放入他们的资源文件夹中.
docs在这里不是很有帮助(如果我的搜索足够彻底),因为它们只表示它有助于“目标程序具有重复值的字符串”的情况.情况会是什么时候?
解决方法
据我所知,这只是指出了内存中重复的字符串.但是,这不仅仅是查找已将相同字符串输入到多个资源的情况.例如,在Java中作为
Strings are immutable,您可以轻松地获得比您最初意识到的更多字符串实例.如果您的应用程序有很多字符串连接代码但不使用StringBuilder,或者如果您的应用程序执行任何字符串/文本处理,则很容易以字符串占用意外的大量空间.但相反,它往往是一个相对容易的优化,以获得一些空间(一旦你可以看到问题是什么).所以你可以说这个任务更多的是关于内存’优化’,而不是找到泄漏.