对于做性能的人来说,不知道问题所在时,最好可视化它,而Memory一直以来,都是性能关注的重点,然而在Android上,却也只能dumpsys meminfo这种运行古老的命令行查看内存,VM的内存好一点,可以dump hprof文件查看,但也是Static的方式,或者使用LeakCanary,查看内存泄露,也都是在memory leak境界,没有到memory performance的地步。
大概在3个月以前,终于实现了Android Java的Flame Graph:
后来我尝试过获取Android Native Flame Graph,但没有获取成功。由于其他事情的影响,也就没有继续深究。最近又拾起,不断的折腾下,最终还是得到了:
完成了Android Java跟Native Memory Flame Graph,略微能够看到Android App Memory冰山下面的部分。至于Kernel的,App Performance不会涉及到。
没想到离开Android System Performance这么久的我,还是喜欢这种从Java到Native,再到Kernel这种全系统的跟踪。生命不息,奋斗不已。昨天电驴坏了,害的推了半天,周末修车,愿安好。
2015.10.25更新:我大概想到了一种可以使用Android Native Flame Graph做Android Native Memory Leak检测方案了。突然发现自己,还保存那么一点好奇心,还有点工匠的气息,没有完全迷失在这个浮躁的社会里。