首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何发现android虚拟地址中的内存泄漏?

如何发现android虚拟地址中的内存泄漏?
EN

Stack Overflow用户
提问于 2016-10-17 10:24:41
回答 1查看 348关注 0票数 0

在我们的名为MediaCenter.apk的应用中有一个可以播放视频的按钮。最近,我们发现每次播放和退出视频。mediacenter进程的虚拟地址增加了大约5784KB (但物理地址保持不变),因此该进程在视频播放器压力测试中崩溃,因为此时虚拟地址不够。我使用命令pmap -x pid检查mediacenter进程的虚拟内存使用情况,发现/data/dalvik-cache/system@app@MediaCenter.apk@classes.dex使用了增加的5784KB。

代码语言:javascript
复制
65b29000    5784       8       0       0  r--p  /data/dalvik-cache/system@app@MediaCenter.apk@classes.dex

我发现/data/dalvik-cache/system@app@MediaCenter.apk@classes.dex文件的大小几乎等于5784KB。整个文件似乎都被内存映射到了mediacenter进程。但是,我如何才能找出文件在进程中的哪个阶段是内存映射的呢?如何查找视频播放器退出后没有释放虚拟地址的原因?

EN

回答 1

Stack Overflow用户

发布于 2016-10-17 11:36:34

Android hprof工具提供了你的应用程序进程的内存使用情况。下面是链接https://developer.android.com/studio/profile/am-hprof.html

要知道你的设备上允许的最大堆大小,可以在yout App中添加以下代码。

代码语言:javascript
复制
Runtime.getRuntime().maxMemory();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40077645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档