Page 145 - Web性能权威指南
P. 145

了这些,你就会知道为优化移动应用而对各种带宽和延迟所作的估算结果,最多就
                 是一种瞬态数据点。


                             iPhone 4 的“天线门”是无法准确预测无线性能的一个典型事例:信号质
                            量会受到你握持手机的手与天线距离的影响。“你拿手机的姿势不对”这句
                            流行语正是由此而来。

                 移动网络的延迟和带宽估计值基本上就是几十或几百 ms,最多 1 s。实际上,虽然
                 6.4.2 节中“自适应比特流”那一部分介绍的优化策略,即将数据分成多个几秒钟的
                 块,对持久数据流(比如视频)还是有用的,但对带宽的估计值绝对不该缓存,或
                 者用于决定将来的吞吐量,就算是对 4G 网络也不行!可能你刚刚测量的速度是几
                 百 Kbit/s,而换了只手速度就到了 Mbit/s 以上。


                                         移动网络中的流媒体应用

                   流媒体应用在移动网络中是一个难题。如果你需要一次长时间的下载,而且知道
                   要用到整个文件,就应该一次性下载该文件,然后让无线模块尽量空闲更长时间。
                   前面介绍的 Pandora 应用中下载音乐文件的例子就是一个典型。

                   可是,如果由于文件太大,或用户行为受限,不能一次性下载完整的文件(比如
                   高清视频),那就应该利用 6.4.2 节中“自适应比特流”那一部分介绍的优化策略,
                   适应网络吞吐量的不断变化。此时,电池耗电可能更快,但至少你能保证最佳用
                   户体验!当然,也可以建议用户切换到 Wi-Fi 网络。


                 在任何网络中,要估计端到端的带宽和延迟都很难,移动网络尤甚。可以说,你的
                 估计十有八九都不靠谱。相反,应该基于相关网络属于哪一代的粗粒度信息,相应
                 地调整代码。记住,知道移动网络属于哪一代或者是什么类型,不能保证任何端到
                 端的性能,但你却能知道无线网络第一跳的延迟数据,以及运营商网络中端到端的
                 数据。这一块的详细信息,请参考 7.5.1 节中的“移动网络中的延迟与抖动”,以及
                 表 7-6。

                 最后,除了吞吐量和延迟之外,还应该考虑连接中断。要把连接中断作为常态,而
                 不是例外。不管网络是不是可用,你的应用都应该尽量保持运行,而且应该根据请
                 求类型和特定的问题作出反应:

                 •   不要缓存或试图猜测网络状态;
                 •   调度请求、监听并诊断错误;
                 •   瞬态错误总会发生,不可忽视,可以采取重试策略;



                                                                   移动网络的优化建议   |   129
   140   141   142   143   144   145   146   147   148   149   150