美文网首页aa雨下思考
iOS网络性能优化

iOS网络性能优化

作者: 快乐的小梁同学 | 来源:发表于2016-05-04 11:34 被阅读1834次

度量网络性能的三个重要指标

  • 网络带宽(两个端点之间的通信通道每秒可以传输的位数,任何网络连接的最大速率取决于通信路径上的最慢链路)
  • 网络延时(网络包在两个端点音一次往返所需的时间)
  • 设备电量

设备电量

  • 屏幕显示与背光
  • 位置服务
  • Wi-Fi无线电
  • 蜂窝无线电
  • 图形处理器
  • CPU
  • 蓝牙无线电
  • 声音处理器
    如果应用将传输的数据量降到最小,优化对现有的TCP连接的使用,避免不必要的请求,那就可以减少设备无线电的开启时间。

优化网络操作

一,承认网络性能存在的问题是解决问题的第一步。
二,减少请求带宽

  • 使用高效的数据交换格式
  • 在可能的情况下使用预先压缩的数据(使用专门算法对诸如音频,视频和图像进行压缩或按比例缩放以适应通道与设备)
  • 压缩每一个请求与响应负载(iOS网络请求中都是默认开启压缩的,接收到负载会自动解压缩并以最初的格式呈现在代码中。解压缩的计算代价要比传输10倍字节的通信代价低,因此,激活响应压缩几呼是有益无害的)
    如果想禁用压缩,应该可以通过清除自动设定的Accept-Encoding头来实现。如相代码演示了如何清除这个头:
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url cachePolicy:NSURLCacheStorageAllowed timeoutInterval:20];
    [request addValue:@"" forHTTPHeaderField:@"Accept-Encoding"];
    三,降低请求延迟
    网络延迟包括在手机与运营商网络间建立连接的时间,建立TCP连接的时间,可能还有协商SSL连接的时间,以及发送与接收HTTP请求的时间。 应用可以按照顺序执行所有队列请求,在这个过程中一直保持激活相同的连接,避免建立多个TCP连接开销。
    可以轻松为NSURLRequest开启管道支持,如下:
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url]; [request setHTTPShouldUsePipelining:YES];
    不过,并非所有的服务器都支持HTTP管道
    四,避免网络请求
    1.默认缓存行为

相关文章

网友评论

    本文标题:iOS网络性能优化

    本文链接:https://www.haomeiwen.com/subject/qiyrrttx.html