本文介绍: 在应用中,录制与音视频模块往往是高耗能的模块,设备容易发热,影响体验。手机有多个耗电模块, SOC(CPU,GPU,DDR),Display,Audio,Video,Camera, WIFI 等,通过参数配置优化、代码优化等手段提升元器件的使用效率、降低负载,从而降低耗能。先整体梳理,从耗能大头入手,小修改可获取大收益,利用Time Profile或者火焰图可以深入挖掘可优化点。
前言
在应用中,录制与音视频模块往往是高耗能的模块,设备容易发热,影响体验。
什么是功耗优化
手机有多个耗电模块, SOC(CPU,GPU,DDR),Display,Audio,Video,Camera, WIFI 等,通过参数配置优化、代码优化等手段提升元器件的使用效率、降低负载,从而降低耗能。
为什么要进行功耗优化
如何进行功耗优化
- 在分辨率方面,保持输入、处理与输出环节的分辨率一致,并在不同场景下使用最优分辨率,不作下采样甚至是上采样。
- 在帧率方面,不同应用场景使用不同的帧率,能用15帧就用15帧,能动态调整帧率就动态调用。
- Codec方面,尽量采用硬编硬解,并权衡使用H264/H265. 在Android平台上,用Surface不用ByteBuffer。
- 图形数据方面,能用GPU的不用CPU,用OpengGL好过vImage(iOS),尽量避免数据颜色格式转换(譬如YUV转RGBA)。
- 音频方面,采样率在链路上保持一致,避免重采样,譬如冗余Buffer拷贝,采样率可降级使用,3A处理是CPU占用大头。
- 优化内存使用方面,减小冗余线程及线程间切换,频繁小Buffer申请与释放优化为内存池处理,减小重复调用/空调用/冗余调用,找出冗余的拷贝操作进行优化,根据Instrument Profile或者SystemTrace找出高耗函数或者冗余调用或者可降频函数进行优化。
- Camera方面,优化配置参数,能不开启抖动检查等优化算法就不开启,不需要采集的时候确保采集通路是关闭的,而不是隐藏地开启的。
- 高耗能场景进行降级操作,不同分辨率场景使用不同精度的特效模型,采集分辨率与帧率降级。
- 日志治理,有的模块可能上报或者记录大量的日志埋点数据,劣化IO传输或者CPU占用。
在整个应用方面,可参考以下抖音案例总结:
链接:https://juejin.cn/post/7104618668835176456
总结
先整体梳理,从耗能大头入手,小修改可获取大收益,利用Time Profile或者火焰图可以深入挖掘可优化点。
原文地址:https://blog.csdn.net/Kayson12345/article/details/134762234
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_32326.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。