驱动中国快手自研OOM解决方案KOOM今日宣布开源( 二 )


分析报告生成流程总体分为三个环节 , 第一个环节扫描镜像构建索引 , 建立泄露查找分析的基础;第二个环节查找出泄露的对象 , 根据既有的framework知识以及人为设定的策略 , 执行对象泄露判定;第三个环节生成最终报告文件 , 将对象泄露路径、泄露数量、类统计、运行时信息添加至报告文件 , 辅助后续根据报告分析解决OOM问题 。
驱动中国快手自研OOM解决方案KOOM今日宣布开源
本文插图
解析镜像生成报告流程图
针对镜像回捞需求 , 对hprof进行运行时hook裁剪 , 只保留分析OOM必须的数据 。 裁剪还有数据脱敏的好处 , 只保留对分析问题有用的内存中类与对象的组织结构 , 并不上传真实的业务数据 , 充分保护用户隐私 。
总结展望
快手KOOM计划做完整的客户端内存解决方案 , 开发者可以通过接入KOOM , 解决自己项目中的OOM问题 。 此次一期开源暂时只包括Android Java OOM解决方案 , 后续还将开源Android线程/文件描述符监控、Android Native OOM监控、iOS OOM监控等 , 最终实现帮助开发者解决各种场景下OOM的愿景 。
快手KOOM GitHub地址:https://github.com/KwaiAppTeam/KOOM


推荐阅读