为了账号安全,请及时绑定邮箱和手机立即绑定

Android ==>内存分析==> Eclipse内存分析器?

/ 猿问

Android ==>内存分析==> Eclipse内存分析器?

慕雪6173905 2019-11-13 14:56:37

我需要检查我的应用程序是否存在内存泄漏,也需要查看我的应用程序的内存分配。我下载并安装了Eclipse内存分析器,看起来第一步是打开堆转储。但是什么是堆转储,我如何创建堆转储。以及我将如何使用该软件,做了一些谷歌搜索,但是找不到任何有用的信息,谢谢



查看完整描述

3 回答

?
繁星淼淼

在调试应用程序时,请在Eclipse中打开DDMS。工具栏上有一个堆转储按钮,可用于生成堆转储以在Eclipse内存分析器中查看。我认为只有1.6+或2.0+ SDK支持此功能。


查看完整回答
反对 回复 2019-11-13
?
月关宝盒

dalvik VM的堆转储需要使用Android SDK的tools目录中的hprof-conv.exe转换器工具转换为常规hprof格式。您可以使用Eclipse MAT或其他工具打开此hprof:YourKit http://www.yourkit.com/ 和JProbe http://www.quest.com/jprobe/


除了DDMS,您还可以通过以下方式从您的应用/代码(仅限较新的SDK)中创建hprof Debug.dumpHprofData(...)


请注意,在DDMS中,您可以看到您的应用程序正在使用的堆。它没有显示本地堆正在分配外部资源(例如位图)。但是,在检查内存泄漏时也需要考虑这些资源。当本机和应用程序堆的总和达到16MB / resp时。24MB,您将收到OOM错误。


您可以通过看到已使用的本机堆(即,应用程序中的位图)Debug.getNativHeapAllocatedSize()。


查看完整回答
反对 回复 2019-11-13
?
慕容森

另请参见http://developer.android.com/guide/developing/debugging/ddms.html#profiling


如果有帮助,则可以使用Debug API对本地代码区域进行性能分析。这样,在例如traceview中分析跟踪时,您的冗长程度就会降低。有关示例,请参见http://macgyverdev.blogspot.com/2011/07/profiling-android-application-tutorial.html。


以及有关如何转换DDMS堆转储的更多详细信息,因此您可以在Eclipse内存分析器中查看它们,并通过支配器树工具查找泄漏的对象:http : //macgyverdev.blogspot.com/2011/11/android-track- down-memory-leaks.html


查看完整回答
反对 回复 2019-11-13

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信