刚刚快手开源高性能线上内存监控方案
【公众号回复 “1024”,免费领取程序员赚钱实操经验】
大家好,我是章鱼猫。
今天给大家推荐的这个项目是「KOOM」,KOOM(Kwai OOM, Kill OOM) 是快手性能优化团队在处理移动端 OOM 问题的过程中沉淀出的一套完整解决方案。
其中 Android Java 内存部分在 LeakCanary 的基础上进行了大量优化,解决了线上内存监控的性能问题,在不影响用户体验的前提下线上采集内存镜像并解析。
从 2020 年春节后在快手主 APP 上线至今解决了大量 OOM 问题,其性能和稳定性经受住了海量用户与设备的考验,因此决定开源以回馈社区,并欢迎大家来帮助我们改进。
KOOM 背景
随着移动端业务逻辑日益复杂,4K 编解码、AR 魔表等高内存需求场景的逐渐普及,OOM 问题已成为快手客户端稳定性治理的头号顽疾。
在日常版本迭代过程中,间或会发生 OOM 激增,而线上环境非常复杂,仅 AB 实验就有上千种,事前预防以及事后还原都无法做到,因此急需高性能的线上内存监控方案。
一期开源的 Android Java 内存监控方案,他们调研了 LeakCanary 以及美团和 UC 等发表的相关技术文章,发现业内的优化方向主要集中在内存镜像的解析部分,而内存镜像 dump 部分,一直没有方案能解决 dump 过程中 app 长时间冻结的问题。经过深入研究,他们发现可以利用 Copy-on-write 机制 fork 子进程 dump,满足他们的需求。
随机采集线上真实用户的内存镜像,普通 dump 和 fork 子进程 dump 阻塞用户使用的耗时如下:
点击阅读原文查看更多。
开源项目地址:https://github.com/KwaiAppTeam/KOOM
开源项目组织:KwaiAppTeam
推荐阅读:
卧槽,太牛逼了,一个可以把单张静态照片转化成 3D 图片的项目
---特别推荐---
特别推荐:一个新的优质的推荐高效工具,软件,插件的公众号,每天给大家分享优秀的效率工具,「程序员掘金」,专门为程序员挖掘好东西的一个公众号,非常值得大家关注。