无论如何,我们可以在Android中监测GC事件吗?如何聆听Android中的GC事件
在Java中,我相信我们可以收听事件http://www.fasterj.com/articles/gcnotifs.shtml 但是java.lang.management APIs在Android中不可用。
无论如何,我们可以在Android中监测GC事件吗?如何聆听Android中的GC事件
在Java中,我相信我们可以收听事件http://www.fasterj.com/articles/gcnotifs.shtml 但是java.lang.management APIs在Android中不可用。
为什么你想要这个监听器。如果你只是想知道,如果您的应用程序运行内存只是检查:
释放内存,内存变紧
在您的应用程序生命周期的任何阶段,onTrimMemory()回调也告诉你当整体设备内存越来越低。你应该通过进一步释放基于()由onTrimMemory交付以下内存资源水平作出回应:
TRIM_MEMORY_RUNNING_CRITICAL 您的应用程序仍在运行,但系统已经杀死了LRU缓存中的大部分进程,因此您应该立即释放所有非关键资源。如果系统无法回收足够数量的RAM,它将清除所有的LRU缓存,并开始杀死系统希望保持活动的进程,例如托管正在运行的服务的进程。 此外,当你的应用程序是当前缓存,您可能会收到来自onTrimMemory以下级别()中的一个:
TRIM_MEMORY_BACKGROUND 在系统运行时内存不足,你的过程是接近LRU列表的开头。虽然您的应用程序进程没有被杀死的高风险,但系统可能已经在杀死LRU缓存中的进程。您应该释放容易恢复的资源,以便您的过程保留在列表中,并在用户返回到您的应用时快速恢复。
下面是引用链接https://developer.android.com/training/articles/memory.html
好吧,这将是双方的Dalvik和技术不同..
基本上可以指导亚行外壳,记录在一个跟踪文件中的GC事件..
艺术:https://source.android.com/devices/tech/dalvik/gc-debug.html
它甚至可能是艺术和Dalvik的同亚行的命令。
当它在android studio中为你显示内存的图形图表时,内存监视器工具会插入此内存中。
在编程上,可能会更困难..看看FB如何执行它们的性能工具,因为我相信他们正在从本地C/C++端执行GC事件计数,并将它们放在flatbuffer中用于其Java代码剖析工具代码访问..
为哪个Android运行时? Dalvik还是ART? – AADProgramming 2016-06-30 11:19:56