对用户来说,最直不雅的感触感染就是APP的等待时光,所以我们起重要分析清跋扈APP到底在哪里让用户等待,耗时在哪里。
作者介绍:
黄浩宇
现就职于腾讯社交统??营部,负责SNG社交收集营业仪羁噜产品的营业运维工作,如QQ、Qzone营业优化及开辟。
此前任职于阿里巴巴,负责天猫商城晃荡类营业的运维工作,如天猫双11,天猫周年庆等。
导语
移动互联网成长那么快,运维技巧也要适应营业的变更啊,此次小编找了腾讯牛人介绍的手机QQ和手机Qzone的速度优化实践。
我们坚信不合垂直范畴的运维分工会越来越不合,若何能在不合的营业形态上,应用运维技巧和数据为营业带来更大年夜的价值,将是我们下一步摸索的重点偏向。
等待时光无非就以下三个:
- Server处理耗时
- 收集传释砟瓯
- 客户端数据处理/UI衬着耗时
下面重要介绍后两个偏向上的优化实践。
2. 收集传输
2.1 收集传释砟瓯统计
2种筹划都各有长处各有可取之处,但因为产品对包大年夜小有严格限制,今朝在QQ和Qzone重要采取筹划1

图2.1 大年夜办事端测收集延时
经由过程实际数据统计,在不跨网拜访的情况下(旌旗灯号正常):
- 4G耗时约30-100ms
- 3G耗时约 200-400ms
赶紧度结不雅上看,今朝主流的3G/4G网速照样相当不错的,然则因为移动收集的复杂性,大年夜QQ和空间的营业返回码监控上照样发明有不少问题:
- 跨网拜访
- 跨地区拜访
- 某些小运营商劫持等
下面分享下手机Qzone在接入组件的优化策略
2.2 手机Qzone WNS接入策略
简介:WNS棘手机QQ空间APP到办事端通信框架,支撑tcp、http协定
2.2.1应用私有协定直接IP长连接拜访(图2.2)
长处:
- 削减DNS请求耗时
- 避免DNS域名劫持
- 单个连接并发多个数据请求削减连接数的开销(相对http)
- 私服协定加密安然;
缺点:因为不走域名,初次连接须要额外的策略来找到合适的接入点,并且须要有重定向才能

图2.2 私有协定直接IP长连接
2.2.2 初次连接策略
长处:额外开销极少,对APP根本没影响
世界上最遥远的距离就是你在联通,而我在电信。在复杂的移动收集情况下,我们须要优化收集的接入策略避免跨网/跨地区拜访。
收集耗时经由过程TCP协定的三次握手在办事端进行统计,长处是简单快速低成本,具体筹划如下:
- 记录下第一次握手时办事端收到SYNC包的时光Time1
- 记录下第三次握手时办事端收到的ACK包时光Time2
- 两个时光之差等于收集往返耗时RT(Time2-Time1)(见图2.1)
应用移动收集时我们先辨认用户的运营商,同时起4个连接,多个接入IP+多个端口+2种协定,再同时应用2种协定和多个端口是为了避免有些本地运营商的限制,应用第一个连接上的连接(见图2.3)

图2.3 初次并发测验测验连接
应用WIFI的用户初次连接会优先应用域名测验测验连接。
当主线程调用函数调用跨越N秒时,主线程处于等待堵塞状况,用户所有UI行动暂停,所以认为终端出现卡的情况。
当膳绫擎策略都连不上时客户端会运行打分策略,应用备份IP列表连上一个速度最快的接入。
腾讯拥有国内大年夜量的CDN节点,即使是偏远地区也可以经由过程CDN节点接入做为代劳!
长处:多种初次连接策略能有效的包管用户最大年夜可能的先连上办事器,这在复杂的移动收集中特别重要!
QQ/Qzone等产品因为已经有多年的Server端优化,大年夜部分数据都是直接读写nosql数据库,接口耗时根本都在30-120ms,优化Server实际的收益并不会很大年夜。
缺点:初次连接有额外开销;连接上不必定是最优的接入点;应用CDN节点做为代劳接入成本较高
2.2.3 最优接入&重定向
连接上之后办事端经由过程GSLB IP库辨认用户的出口IP,如不雅发明用户的接入不是最优的接入,经由过程大年夜数据分析该用户在某个时段最应当应用的接入点,会下发重定向指令,让客户端连接到最优的办事端接入IP,WIFI下还会缓存住SSID和接入IP。
长处:让用户能就近/最优接入,削减收集低砟瓯
缺点:少部分用户初次应用须要连接2次办事器;
2.2.4 应用字典做数据紧缩
削减带宽开销;安然
2.2.5 心跳
避免长连接断开
2.2.6 单连接并发请求
相对多连接单请求的传统HTTP模式(HTTP 2.0之前),用单连接可以大年夜大年夜削减客户端和办事端开销
结论
移动收集上我们能做的优化无非就是削减连接,削减请求,避免跨网跨区,优化协定。而跟着4G/光纤的快速成长,今后越来越多用户在收集上低砟瓯会越来越少,意味着我们收集策略上的优化效不雅收益也会越来越低,这时我们把眼光投向终端。
3. 终端耗时
推荐阅读 应用办法
一、Android Studio-Memory Monitor应用办法run起你的项目,找到Memory Monitor窗口,选择Memory 分别代表app 堆内存信息,图片堆内存信息,zygote过程的堆内存信息。[转]内存变更>>>详细阅读 本文标题:【干货】手机QQ及Qzone速度优化实践 地址:http://www.17bianji.com/lsqh/35730.html 1/2 1

网友点评
精彩导读
科技快报
品牌展示