InfoQ 3 亿的快手是怎么进行性能优化的?,日活超过
采访嘉宾|杨凯
作者|冉叶兰
在移动互联网时代 , 由于设备资源受限、网络不稳定等因素 , Web端和移动端的性能优化显得尤为重要 , 如果性能不好 , 用户就容易流失 , ToC的产品尤为明显 , 体验差的产品必然会被市场淘汰 。 如何做好性能优化是每个企业都会关注的 。
在将于11月24-25日举办的GMTC全球大前端技术大会上 , 快手性能优化负责人杨凯将会分享《快手APM平台建设与性能优化》 。 他表示 , “随着快手App功能越来越多 , App的性能也面临着严峻的挑战 , 诸如App越来越卡、内存占用越来越大、包大小不断增加等各类问题都严重影响着用户体验” 。 InfoQ在会前采访了杨老师 , 我们一起来看看快手是如何应对性能挑战的 。
InfoQ:快手APM指标监控平台的建设背景是什么?目前发展现状如何?
杨凯:APM是我们针对快手的性能检测做的一个监控平台 , 其建立背景主要有两方面 , 一方面有很多用户反馈在使用我们的App时 , 遇到过卡、闪退和发热等问题;另一方面 , 我们从现有数据分析得出结论:性能对于用户活跃度有着重要影响 。
目前 , 我们已经基本完成了崩溃、内存溢出(OOM)、应用无响应(ANR)、卡顿、启动、帧率(FPS)、包大小的线上、线下监控 , 电量、流量等监控正在开发中 。 线上的话 , 我们有天级、小时级的监控 , 并且重点指标有完善的报警机制 。 对于包大小、启动等 , 我们建立了一套实验室环境 , 可以监控到每个mr(Mergerequest)导致的变化 , 以及日常迭代劣化 。
APM主要解决我们面临的各种稳定性和性能问题 。 效果非常明显:
优化了40%的启动速度 , 提升了我们的0播、留存等关键产品数据 。
优化了23M包大小 , 大大降低了我们新用户获取成本 。
两个优化 , 都获得了快手技术线的绩效提升奖 。
文章图片
InfoQ:你们在搭建指标监控过程中遇到哪些难点?是怎么解决的呢?
杨凯:APM可以做的事情很多 , 容易铺得很广 , 但每一点都做不透 。 另一方面 , 虽然大家都觉得性能重要 , 但如果没有数据的支撑 , 也容易陷入到处救火而看不到成绩得窘境 。 所以我们一方面参考业内经验、根据数据分析得出重要程度 , 评估每个方向的优先级 , 各个击破 , 抓住重点 , 力求每一点都做到极致 , 并且能从用户数据上得到充分的体现 。
我们是一个音视频软件 , 所以对内存的使用 , 尤其是C++申请的内存会比较多 。 内存泄露 , OOM、地址空间不足等问题非常突出 。 业内现有方案对我们来说并不完全适用 , 需要我们根据自己的实际情况 , 开发监控、解决问题 。 业内有比较成熟的mallochook方案监控C++内存的申请、释放 , 但我们还需要知道哪些内存不可达 , 哪些大块内存被长时间持有 , 才能更好地解决我们的问题 。
另外 , 我们在线上发现的性能问题 , 通常不是我们性能组能独立解决的 , 需要推动各业务方配合解决 。 这些工作会给大家日常的开发工作带来额外的负担 , 但它又对我们产品体验有很重要的影响 。 所以我们一方面尽量完善工具 , 上报更多更全的数据 , 另一方面我们要将大家作为一个整体团队 , 享受项目的成果 。
InfoQ:内存优化过程中遇到的问题是如何解决的?
杨凯:我们有一套自己的方法论 , 即定义问题、分析问题、解决问题、验收以及防劣化 。
定义问题:在最开始阶段 , 先将问题量化 , 例如用户卡 , 就需要定义什么叫卡 , 怎么监控用户卡?
分析问题:我们会在收集到足够的用户数据后 , 分析用户实际的问题场景、原因 。
解决问题:很多问题 , 并不是性能组可以解决的 , 但是我们可以提供工具定位、发现问题 , 推动相关开发人员解决 。
验收:对于一些重要的优化 , 我们会通过AB上线验收效果 , 回收技术数据和产品数据(例如优化FPS , 我们会看相关页面CTR的变化) 。
- 高考加分有何新规怎么回事?高考加分有何新规时间过程详解
- 最前线|中年女性怎么穿才算高级?俞飞鸿来教你,身穿一袭黑裙优雅大方
- 小刁说美食|夏日快手小炒,箭笋小炒肉,脆嫩鲜美巨下饭,尤其适合上班族
- 小城时光说资讯原创 手机频繁“恢复出厂设置”,会造成哪些影响?看看维修师傅怎么说
- 深度解娱SJ|陈小纭怎么不会知道绿色含义,先暗示自己被绿又出面解释,看不懂
- 证券CEO|买高价股好还是低价股好?作为投资者你怎么看,现阶段A股3000点
- 市党建服务中心|担当使命,勇毅逆行丨“怎么解决最后一公里的问题”——张军萍
- 五花肉|台式卤肉饭,简单美味营养,吃不够,适合夏天夏日快手菜谱
- 小城时光说资讯 会造成哪些影响?看看维修师傅怎么说,手机频繁“恢复出厂设置”
- 前世作云 头条号怎么样同时上传数个小视频?,多平台上传工具