Android性能分析_网络

Android性能优化中不可控因素

资源性能中,磁盘、内存、CPU都市本地资源,除此之外还有一个外部资源-网络。对于互联网来说,它有更加丰富的内容,也有更多令人困扰的事情。而优化网络性能主要从三个方面入手:业务成功率、业务网络延迟、业务网络宽带成本。

#1. 业务成功率
弱信号网络和拥塞网络,处理不当都会直接影响业务的成功率,比如在发消息时刚好进入电梯或者在演唱会里分享照片等都有可能发送失败。

  • 弱信号可以看成手机只有一两格的时候,这时不仅仅信令发出去困难,而且可能导致不断切换网络、切换基站,而App能做的就是在应用层做重试。
  • 另一个就是拥塞网络了,简单的理解就是堵车、排队、数据包排队、信令也在排队。这时App不断的重试只会使得拥塞更为严重。最多能做的就是让自己的非核心业务不要去排队,让核心业务的数据量更少,协议来回更少。

#2. 业务网络延时
业务网络延时虽然影响没有业务成功率这么直接,但是慢起来也会很不爽。这个慢就是从一个数据包的发送历程开始。

  • DNS解析,简单来说就是域名换IP。这一步看似简单却是充满陷阱,10分钟的DNS Cache过期时间,200~2000ms的DNS解析耗时,花费了太多时间,坑了无数应用。

解决DNS时延有三个策略:IP直连、域名重用、HttpDNS(利用自定义的协议获取域名对应的IP地址,甚至是列表)。

建立连接大多数是基于TCP的,无非就是三次握手建立TCP连接。如果是长连接就是一次耗时,短连接则是每次都会有这个耗时。万而维护长连接就必须要心跳包,心跳包多了会耗电,同时对于移动网络来说会增加信令通道的负担。心跳包少了,会让连接在NAT中超时,导致长连接断开。

利用应用层分片大小可以做到更严格的拥塞策略。多连接和长连接一定程度上可以绕开拥塞策略中的慢启动。

其实在这个云时代,QQ有MST(马师傅)、QQ空间有WNS(维纳斯),他们都是处理各种网络请求、提升业务成功率和网络时延的优秀组件。WNS在腾讯云山有提供服务(https://www.qcloud.com/product/wns.html)。

#3. 业务网络宽带成本
除了流量大对业务成功率和网络时延的影响外,就应该是宽带成本了。对于富媒体业务,每天在宽带成本上的投入,就跟烧钱没什么区别,如何节约成本的同时也给用户带来好处,策略有

压缩、增量、去重复三种。

先说压缩,如图片用WebP压缩、png压缩,还可以用Progressive jpeg的不同程度压缩来替代大中小图,视频用H264、H265压缩。文本用gzip压缩和其他ZIP压缩方案。除此之外还有一些细节:

  1. 图片的尺寸在不同分辨率的屏幕上要下载不同的尺寸,设计时要注意;
  2. WebP图片的编码和解码对于手机是有压力的,CPU消耗是JPEG的3倍以上,消耗耗时业务JPEG要长的多。所以使用的时候要注意,千万不要是性能压力过大的场景。建议解码之后在本地保存成JPEG,以降低下次解码的压力。

增量,要做增量,协议的复杂度会上升不少,因此也不要强求,关键是看业务是不是经常变化和业务的规模。比如在一些社交软件中有2000个好友的用户来,哪怕有一两个好友更新了资料,都将是一场灾难。

最后是去重复,表面上这看是最简单的问题,但是却最常见,比如在地图软件中地图SDK重复下载图块、横竖屏切换WebView的内容、重复下载这些都是普通的bug。有一些很是隐蔽,如压缩包里面的图片和没有压缩的内容重复,CSS里面的内嵌图片与压缩包里面的图片重复,没有一点强迫症的都发现不了。

在此推荐几个常用的网络性能分析工具:

1.Wireshark 号称最专业的网络分析工具,流量分析神器,全部网络性能问题的分析地位都可以查看。
2.fiddler 主要针对HTTP,帮助发现HTTP从多性能问题,还能模拟错误和延时的HTTP返回。
3.traceroute 定位网络路由问题,包括就近接入、跨运营商问题。
4.ARO 无压缩、重复下载、缓存失效等,还有雅虎军规中的其他问题。
5.WebP/BPG 图片压缩方案,前者基于webm的帧内压缩,后者基于H.264的帧内压缩。
6.SPDY/HTTPH2.0/QUIC 网络协议,利用FastTcpOpen减少握手次数,利用UDP更好的适应网络抖动。
7.WebPageTest.org 如果要做Web应用的数据上报,建议参考。它提供了LoadTime、StartRender、SpeedIndex、Dom Elements等耗时。
8.tPackageCapture 无Root抓包。
9.ATC 最专业的弱网络模拟工具,除能模拟窄带、延时、丢包、损坏包外,最专业的还是包乱序的情况。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值