听云解读2015中国移动应用性能现状
看点:听云解读2015中国移动应用性能现状
近日,听云发布了《2015中国移动应用性能管理白皮书》。白皮书中听云iDaaS数据中心对2015年iOS、Android两大平台移动应用的概况进行盘点,揭露了2015中国移动应用性能的现状。
有趣的是,在绘制白皮书的过程中,发现有几组移动应用性能数据颇为有趣,现在就让我们来一一解读。
看点一:崩溃率,到底谁高谁低
在报告发出之前我们在微信做了一个小小的调查:在你的心目中,iOS和Android崩溃率到底谁高谁低?结果很有意思,见下图。
这个趋势和我们没看过报告之前想的是一样的:iOS如丝般顺,安卓机则是各种卡顿爆炸。考虑到我们公众号的程序猿浓度颇高,这个结果某种程度上来说也代表了现在技术人员心目中的感受,然而结果呢,只能用大跌眼镜来形容:
是的,你没看错,0.13%比0.93%,从2015年全年的观察来,Android系统崩溃率明显优于iOS,实际结果和预测完全相反,而且相差7倍之多,为什么会出现这种与感官相去甚远的结果?其实通过接下来的解读你就能够清晰的了解,这也是数据的魅力,能够发现隐藏起来的真实:
1、版本
我们都知道Android在发布4.X之后,随着不断的优化直到4.4 KitKat版本,稳定性一直都有显著提升,Android 5.0 Lollipop更不用说,所以整个2015年,Android的崩溃率都很低。这其中还有另外一个小的因素,Android是进行即时推送更新,有问题及时更新,一定程度上这也降低了系统出问题的隐患。
反观iOS,iOS8以上版本在发布之初较不稳定,拉高了整体崩溃率;2015年4月9日发布了iOS8.3正式版,崩溃率达到了2015年的高峰(见下图)。与此同时iOS长周期更新推送策略也容易出错,毕竟测试很难测出所有状况。
2、架构
除去版本之外,还有很多底层的因素在影响着iOS。iOS崩溃率高于Android的一个主要原因是由于两个平台对于内存管理机制的差异造成的,由于语言/系统架构的特殊性,OC需直接面对底层API,出错几率可能性较高,C指针使用不当的危险性也极易导致崩溃。
3、硬件
2015年移动硬件性能不断提升,不仅仅是苹果,安卓各大品牌在每次发新机时都有种贴身肉搏的感觉,抛开性价比不谈每一次的更新换代都能看见实实在在的性能提升,这也一定程度上解释了Android崩溃率较低的原因,从热门机型崩溃排行中我们也能看到,各品牌“机皇”们的表现都比较稳定。
看点二:网络性能,到底谁好谁坏
对于APP来说,除去崩溃以外,交互性能也异常重要,其直接反映了用户与移动应用的界面元素和内容交互的体验耗时,由首包时间、HTTP响应时间两大指标展现。据统计,当出现性能问题导致延时响应10秒后,有近5%的真实用户会放弃使用该应用。
然而,随着4G的发展,各运营商网络性能层面表现差异较大,这其中最大的原因是与各自的网络支撑能力及区域发展重点有关。
1、HTTP响应时间
通过对请求包大小的分析,我们可以得出现今流行的请求包大小区间以及各个数据包区间的响应时间,这些数据综合起来可以提供给APP开发者相对应的响应时间均值情况参考。
如图所见,81.17%以上的HTTP请求包大小在50KB以下,10.17%的HTTP请求包在[50,100]KB区间。
2、首包时间
在首包时间方面,通过对移动网络以及WiFi网络数据的对比,我们可以看出中国联通、中国电信要优于中国移动。
3G方面由于中国移动采用大唐电信的td-SCDMA技术相对不是很成熟,相比于联通的W-CDMA技术和电信的CDMA技术差距还是比较明显的。
4G方面由于中国联通、中国电信都采用FDD+td混合LET组网的形式,相同的网络制式,所以实际使用中的速度相差无几,而中国移动采用相关技术较晚,比起联通和电信的FDD-LET成熟度相对低一些。
而在WiFi方面,由于区域的原因,总体来说除了中华通信以外,表现差距不大,三大移动运营商性能接近,方正宽带、歌华有线、广电宽带表现最优。
看点三:错误,到底是何原因
移动应用的错误分为网络错误以及HTTP错误,我们分别来看看他们是什么样的。
1、网络错误
首先是网络错误分布图:
网络错误是指主机请求返回的网络错误状态总数,通过对Android和iOS网络错误的对比,我们可以清晰的看出两种系统的错误类型存在明显差异,这说明网络错误与系统具有一定的 相关性。在连接超时、客户端协议错误、非法响应内容以及SSL证书错误引起的问题方面,Android明显高于iOS;而在未知主机错误上,iOS则明显高于Android系统,不同系统的开发人员应该重点注意一下。
2、HTTP错误
其次是HTTP错误,它是指HTTP请求后返回的错误状态码的统计,他的分布图如下:
我们可以看出HTTP错误发生在Android与iOS状况与原因也是不一样的,主要是因为不同操作系统本身的特点以及后台通信机制,都可能会对应用的操作给出不同的响应错误。
想要分析不同错误原因,需要细化到详细的业务流程,研发者根据每个流程独立研究后制定针对性的优化措施。
看点四:行业表现,到底因何而起
上面讲的崩溃、错误和网络性能表现都是从底层的原因说起的,然而放到我们的实际生活中,各行业崩溃率、网络错误率、首包时间等因素,表现肯定也是不一样(见下图)。造成这个现象的原因与各行业APP的发展水平以及业务类型有关,实际情况也比想象中要复杂,我们从数据中挑几个最典型的例子来进行解读,期望能够以小见大,更好的帮助不同行业的开发者茁壮成长。
1、崩溃率
由图中我们可以看到,崩溃率表现得最差的三个行业:航空、移动办公、地产,他们的原因各有不同:
航空:
航空公司近年来经营业务方式有了转变,移动App渐渐成了重要的工具。然而传统航空公司互联网化投入还是没有想象中的高,关注度也不够,各家航空公司的APP从登陆到最后预订机票,中间环节缺乏引导步骤太多,这大大提升崩溃发生的概率,这也是为什么航空类APP崩溃率居高的主要原因。
移动办公:
移动办公应用的情况则是另外一个维度。为了满足办公的各式需求,一般移动办公应用功能设置繁多且复杂,与此同时用户体验也没做到极致,界面指引不明确,导致过多重复操作,同样可能引发大量崩溃问题。
地产:
地产应用的崩溃率高其实是在我们的意料之中,因为他在互联网一块的投入少得可怜,大多数应用都是展示作用,而且多数地产公司都太过传统,没有互联网基因,在应用上表现的不专业可以理解。
2、网络错误率
在网络错误率方面,数据比较差的除了上面三个行业我们也有新的伙伴:游戏以及音乐。第三高移动办公上面有过描述,这里主要讲讲新闻类应用
游戏:
游戏类应用网络错误率高最大的原因是交互多,每次或每段时间内玩家在游戏里交互就意味着与主机的连接,交互次数越多,出错的几率也就越大。与此同时,由于游戏行业的复杂性,他也不像其他行业一样有一个公认或者默认的规范,基本都是按照经验来,这一定程度上也是网络错误率高的原因。
音乐:
虽然音乐类的应用发展已经有一定的时间了,但是总的来看成熟度相对其他行业还是稍显不足,与此同时音乐类应用牵扯到很多下载和缓存的时候,由于地域或者网络情况复杂,网络错误率偏高也是在情理之中。
新闻:
新闻类的应用最大特点就是刷新频率高,交互轻用户使用频繁,加之复杂的网络情况,在不同文章之间跳转的时候容易诱发网络错误。
登录www.tingyun.com,下载《2015中国移动应用性能管理白皮书》完整版。