我想测试android应用程序的内存性能,我想自动获取内存信息.我使用’adb shell dumpsys meminfo …’来定期获取内存信息.
现在,我想观察内存泄漏,我该如何执行gc?就像DDMS中的“原因GC”一样.
谢谢!
解决方法:
DDMS调试器通过套接字连接到Dalvik VM.响应“原因GC”命令,它发送“HPGC”数据包(即HeaP GC),该数据包最终位于core / java / android / ddm / DdmHandleHeap.java类的handleHPGC()方法中.
handleHPGC()方法只调用java.lang.Runtime.getRuntime().gc()方法.
我认为你可以使用Java调试线协议(JDWP)编写一个简单的(??? – 我从来没有这样做,所以它可能不是那么简单)程序将附加到应用程序的调试端口’使用该API重新测试并调用垃圾收集器.
作为Java docs say for java.lang.Runtime.gc()
:
The method
System.gc()
is the conventional and convenient means of invoking this method.