快手低内存流畅版


近期,全球知名的半导体公司ARM发布了全新的2023全面计算解决方案(TCS23),并在北京举办了技术分享活动。在这场活动中,来自快手的技术专家分享了他们在大型项目中通过使用MTE技术提升内存安全的最新实践。

ARM的TCS23解决方案中,一个备受关注的亮点就是内存标签扩展(MTE)特性。据了解,MTE能够帮助开发人员在应用部署前后检测内存安全问题,从而提高App的内存稳定性,进一步改善用户体验,同时减少潜在的安全风险。

作为领先的短视频和直播平台,快手一直以来都致力于为用户提供极致的体验。近期,快手在内存安全方面取得了显著的进展。通过与ARM、Google、VIVO、荣耀等公司的紧作,快手在大型Android工程项目中引入了MTE技术,从而提高了内存安全。这使得大部分内存安全问题能够在App正式发布之前就被检测并拦截,全面保障了用户的体验。

在基础软件领域,快手主要使用C/C++/Assembly等语言进行开发。这些语言提供了对内存的灵活控制,但同时也要求开发者手动管理内存。尽管这些语言通常被认为是内存不安全的,但快手技术团队通过引入MTE技术,有效解决了内存的问题。在过去,快手主要依赖LLVM ASan工具进行内存检测,但传统的内存检测工具存在着性能开销大、需要重编译源代码等问题,很难在实际的项目开发中使用。

而快手的MTE自定义方案则解决了这些问题。该方案能够在高内存负载的情况下开启MTE,同时保证快手App的流畅运行。在实际应用中,该方案已经成功检出了数十个内存的bug,包括自研库、三方库以及系统GPU驱动库等。这一成果在国内乃至全球都处于领先地位,ARM甚至在2023年的MWC世界移动通信上将快手的实践作为典型案例展示。