android 内存抖动的优化
参考:http://hukai.me/android-performance-memory/
本次项目应用到了Face++的人脸识别,在使用上没多大问题,但是优化时候发现,开启摄像头后,会不断的发生内存抖动
大致审查下代码没发现什么问题,用android studio工具审查下
大致可以发现,onAfterRender()方法进出栈次数比较多,排查下代码,发现
在每一帧调用下,还去不断new对象,生成byte[]数组,这是用来保存摄像头画面,保存成jpeg的数据,只能在另外处理数据,注释掉,重新跑下,就没有内存抖动的情况了
下面再简要概括一下他们各自的特点:
- Memory Monitor:跟踪整个app的内存变化情况。
- Heap Viewer:查看当前内存快照,便于对比分析哪些对象有可能发生了泄漏。
- Allocation Tracker:追踪内存对象的来源。