使用 Android 内存监视器,尤其是它的“Dump Java Heap”功能,我目前正在寻找我的应用程序中的内存泄漏。在 Android Studio 的转储/HPROF 视图的左侧,有一个打开“分析器任务”的选项,您可以在那里告诉机器“检测泄漏的活动”和“查找重复的字符串”。我对后一种选择感到困惑。它有什么作用以及它有什么用处?它必须比仅仅帮助我们中间那些将相同字符串两次放入资源文件夹的笨拙开发人员更复杂。这些文档在这里不是很有帮助(如果我的搜索足够彻底的话),因为它们只声明它在“目标程序具有重复值的字符串”的情况下有所帮助。什么时候会出现这种情况?
问问题
1785 次
1 回答
5
据我所知,这只是指出内存中重复的字符串。但是,这不仅仅用于查找相同字符串已输入多个资源的情况。例如,由于字符串在 Java 中是不可变的,因此您很容易得到比您最初可能意识到的更多的字符串实例。如果您的应用程序有很多字符串连接代码但不使用 StringBuilder,或者如果您的应用程序执行任何字符串/文本处理,则很容易以意外大量的空间被字符串占用而告终。但相反,它通常可以是一个相对容易的优化来获得一些空间(一旦你能看到问题所在)。所以你可以说这个任务更多的是关于内存“优化”,而不是发现泄漏。
于 2016-07-04T14:28:26.363 回答