首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用adb工具调用GC?

如何使用adb工具调用GC?
EN

Stack Overflow用户
提问于 2014-08-20 11:28:02
回答 6查看 9K关注 0票数 4

我想测试android应用程序的内存性能,我想自动获取内存信息。我使用'adb shell dumpsys meminfo...‘定期获取内存信息。现在,我想观察内存泄漏,如何执行gc?就像DDMS中的“原因GC”一样。谢谢!

EN

回答 6

Stack Overflow用户

发布于 2014-08-20 14:17:52

DDMS调试器通过套接字连接到Dalvik VM。为了响应“起因GC”命令,它发送一个"HPGC“数据包(即HeaP GC),最终在core/java/android/ddm/DdmHandleHeap.java类的handleHPGC()方法中结束。

handleHPGC()方法只是调用java.lang.Runtime.getRuntime().gc()方法。

我认为您可以使用Java Debug Wire Protocol (JDWP)编写一个简单的(?)程序,该程序将附加到您正在测试的应用程序的调试端口,并使用该API调用垃圾收集器。

作为Java docs say for java.lang.Runtime.gc()

System.gc()方法是调用此方法的常规且方便的方法。

票数 4
EN

Stack Overflow用户

发布于 2019-08-04 01:59:44

在android studio中,您可以使用Profiler工具。只需在分析器上添加您的应用程序会话,然后单击Memory sections。然后按标题上的强制GC按钮(用回收站图标表示)

票数 2
EN

Stack Overflow用户

发布于 2014-08-20 13:44:02

DDMS中原因GC的定义为:-

在“堆”选项卡上,单击“引起GC调用垃圾收集”,这将启用堆数据的收集。操作完成后,您将看到一组对象类型以及为每种类型分配的内存。您可以再次单击原因GC以刷新数据。

这就是所谓的GC_EXPLICIT

使用Debug.dumpHprofData(字符串)生成堆转储。

将"hprof“数据转储到指定文件。这可能会导致GC。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25396276

复制
相关文章

相似问题

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