1.camera性能问题有哪几种分类?
启动类:冷、热启动,空负载启动,人脸解锁
切换类:模式切换、前后摄切换
拍照类:拍照 -- 缩略图显示,拍照 – 拍照,拍照 – 点击缩略图 -- 图片显示
…
2.分析性能一般使用哪些性能分析工具。
Systrace 、perfetto trace、Simpleperf …
Simpleperf:俗称火焰图,可以看到具体函数调用关系以及耗时
Systrace & perfetto trace:推荐使用perfetto, 图形化界面非常友好,目前比较流行
3.如何确认当前camera面对的问题是性能问题还是内存问题,解决的手段分别是什么
需要先分析,两者有一定的关系,性能问题一般不会影响到内存,但内存问题会影响camera性能。
性能问题:
1.先与测试对齐测试手法及场景,尽可能做到本地复现
2.根据测试数据,与对比机进行对比,详细拆解各个阶段的耗时
3.定位具体耗时在哪个阶段:app、驱动、hal、算法等
4.针对某阶段进行下一步分析
5.性能很复杂,涉及很多领域,必要时学会及时拉通各个领域分析
内存问题:
1.踩内存
1.踩内存log中一般有backtrace堆栈打印
2.通过Addr2line解析堆栈、定位具体是哪个函数出了问题
2.内存泄漏
1.内存泄漏问题一般是代码不规范导致
2.确认问题场景本地复现dump meminfo
3.查看total项是否有异常增长的情况
4.针对当前场景的代码流程进行排查