专栏名称: InfoQ
有内容的技术社区媒体。
目录
相关文章推荐
51好读  ›  专栏  ›  InfoQ

微信客户端性能监控和优化简述

InfoQ  · 公众号  · 科技媒体  · 2017-07-12 08:00

正文

请到「今天看啥」查看全文


InfoQ:请介绍一下,微信 iOS 客户端第一个版本开发花了多长时间,在性能上有哪些关注点?

陈岳伟:第一个 iOS 和 Android 微信版本均花了 2 个月左右的开发时间。初期阶段主要集中在功能开发上,对性能没有特别花太多时间关注,主要对于启动速度、消息收发等主场景做了压力测试。对于一个初创的产品,微信研发团队更看重版本的快速迭代,“先迭代再优化”是第一原则。

InfoQ:目前微信客户端有哪些维度的性能监控,侵入性如何,对性能十分有影响?

陈岳伟:目前微信客户端的性能监控纬度,主要包含 Crash、卡顿、耗时、内存、SQLite、安装包大小、网络性能等。

微信研发团队所做的监控系统可以分为两类:一类是通用监控,一类是专项监控。

针对通用监控,团队搭建了一套基于简单数值上报的终端实时监控系统,可以覆盖几乎所有的监控纬度,最终呈现出来的是 PV、UV、耗时分布、错误统计等。比如准实时生成客户端启动次数、Crash 次数、网络调用次数等曲线,最少延迟可以做到 10 分钟以内。

通用监控主要用于快速发现问题,而其定位问题的能力相对较弱,于是构建了多个专项监控系统。举个例子,微信团队构建的卡顿监控系统,不仅可以监控客户端卡顿次数,还可以展示卡顿堆栈分类和排序,部分场景还可以做到精确标示函数调用的耗时分布。当然专项监控的上报延时更长,数据计算也比较复杂,目前能做到“小时~天”的级别,主要起分析定位的作用。

大部分监控以手动埋点、框架性自动埋点以及触发式上报为主,对性能影响很小。SQLite 和耗时监控,涉及较细力度的插桩,会有一定的性能损耗,前者主要用于开发和自动化测试阶段,后者对现网用户做了一定的采样。







请到「今天看啥」查看全文