iOS网络_优化请求性能

一,度量网络性能

1,网络带宽

用于描述无线网络性能的最常见度量指标就是带宽。在数字无线通信中,网络带宽可以 描述为两个端点之间的通信通道每秒钟可以传输的位数。现代无线网络所能提供的理论带宽是很高的。不过请记住,运营商与网络设备提供商引用的带宽数字常常是 该项技术的理论最大值,网络设备使用的实际带宽可能与这个最大值之间存在很大的偏差。

2,网络延迟。

度量网络性能的第2个因素是网络延迟,指的是网络包在两个端点间一次往返所需的时 间。无线运营商很少会提到网络的延迟数据,不过延迟却会对应用的实际性能造成很大影响。与带宽一样,有很多因素会影响到应用遭受的延迟情况。主要因素就是 用于将设备连接到外界的无线网络技术本身的延迟。

3,设备电量。

iOS设备的运行通常使用的都是电池,应用采取的每个动作都会消耗电量。iOS设备上电量的使用大户主要有:

1)屏幕显示与背光。

2)位置服务。

3)wifi-无线电.

4)WWAN(蜂窝)无线电。

5)图形处理器

6)CPU

7)蓝牙无线电

8)声音处理器。

除了屏幕显示之外,应用能够控制上面的大多数。

二,优化网络操作。

1,减少请求带宽。

1)JSON与XML是用于请求与响应体的常见的数据编码方式。压缩模式的效率在很大程序上取决于待压缩的数据,不过通常情况下JSON都是一种更为高效的模式。

2)Web浏览器对请求压缩的支持并不太好,因为浏览器不知道目标服务器是滞能够支持对请求的解压缩。如果服务器无法理解压缩模式,那么请求就会被丢弃,客户端应用将无法得到响应。

3)与响应压缩一样,客户端不应改将CPU时间浪费在压缩如PDF,加密数据,图 像,音频及视频等已经压缩的内容上,然而,代表预先压缩的数据的Base64数据常常会从请求压缩中获益。比如,如果要以Base64格式上传JPEG文 件,那么可以对Base64数据进行压缩,相较于未压缩的Base64数据,压缩后的数据体积会降低30%左右。

2,降低请求延迟。

1)实现上,在iOS设备上,我们没有办法降低单个网络请求的延迟,不过可以通过一些技术来降低多个请求的延迟。

2)降低请求延迟有两项最佳实践:在单个TCP连接上发送HTTP请求,以管道的形式发送HTTP请求,从而优化全双工TCP连接的使用。

3)Apache和IIS都支持管道,无需任何额外的配置。

3,避免网络请求。

1)通过HTTP缓存机制的基本原理,在iOS应用中利用这些规则,可以在本地缓存内容以避免不必要的网络流量。

2)HTTP被设计作为浏览器与服务器之间的通信,缓存机制也是针对这种使用模式的。iOS提供了一种机制来利用标准的HTTP缓存,以及采取相应的行为。通过NSURLRequest发出的每个请求都会经过缓存组件。该组件是NSURLCache或其子类的实例。

3)在iOS中有一种奇怪的现象,即在某些情况下,应用中的系统组件会将缓存的内存容量设为0,这就禁用了缓存。解决无法解释的行为的一种方式就是通过自已的实现子类化NSURLCache。拒绝将内存缓存大小设为0.

三,iOS用户都希望应用能够立刻响应每个请求。

移动产业有这样一条原则,即屏幕 越小,用户越没耐心。提供让用户乐于使用的应用意味着要珍惜用户的时间,就像珍惜你自己的时间一样。通过压缩请求与响应来优化应用所使用的带宽,通过管道 化请求避免不必要的延迟,甚至通过缓存响应来避免冗余的网络请求都会加速应用并改进用户体验。

iOS网络_优化请求性能的更多相关文章

  1. 【读书笔记】iOS网络-优化请求性能

    一,度量网络性能 1,网络带宽 用于描述无线网络性能的最常见度量指标就是带宽.在数字无线通信中,网络带宽可以描述为两个端点之间的通信通道每秒钟可以传输的位数.现代无线网络所能提供的理论带宽是很高的.不 ...

  2. 【读书笔记】iOS-网络-优化请求性能

    一,度量网络性能 1,网络带宽 用于描述无线网络性能的最常见度量指标就是带宽.在数字无线通信中,网络带宽可以描述为两个端点之间的通信通道每秒钟可以传输的位数.现代无线网络所能提供的理论带宽是很高的.不 ...

  3. IOS网络编程之请求内容

    资料均来自互联网,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. 人魔七七:http://www.cnblogs.com/qiqibo/ 一个http请求只要由三 ...

  4. iOS网络之数据请求GET和POST

    1. HTTP和HTTPS协议 1> URL URL全称是Uniform Resource Locator(统一资源定位符)通过1个URL,能找到互联网上唯一的1个资源 URL就是资源的地址.位 ...

  5. iOS网络开发-AFNetworking请求asp.net WebService

    看到园子有位朋友需要使用AFN框架请求 WebService,所以就整理了一下,demo下载链接在底部 编写WebService可以看这篇博客 http://www.cnblogs.com/linmi ...

  6. ios网络:应用一个请求的7个步骤

    Splitting big tasks into small tasks is often one of the best ways to solve a problem. Thus, in the ...

  7. iOS网络高级编程:iPhone和iPad的企业应用开发(书籍学习)

    作者:Jack Cox.Nathan Jones.John Szumski 译者:张龙  勘误  前言  第 I 部分 理解iOS与企业网络 这一部分从高层次概览了iOS网络以及针对移动网络架构的最佳 ...

  8. Java生鲜电商平台-SpringCloud微服务架构中网络请求性能优化与源码解析

    Java生鲜电商平台-SpringCloud微服务架构中网络请求性能优化与源码解析 说明:Java生鲜电商平台中,由于服务进行了拆分,很多的业务服务导致了请求的网络延迟与性能消耗,对应的这些问题,我们 ...

  9. iOS网络加载图片缓存策略之ASIDownloadCache缓存优化

    iOS网络加载图片缓存策略之ASIDownloadCache缓存优化   在我们实际工程中,很多情况需要从网络上加载图片,然后将图片在imageview中显示出来,但每次都要从网络上请求,会严重影响用 ...

随机推荐

  1. javascript---对象和函数的引用、浅拷贝、深拷贝、递归

    1.javascript 对象和函数的引用 <!doctype html> <html lang="en"> <head> <meta c ...

  2. Vue 生命周期LIFECYCLE是8个吗?

    vue生命周期钩子个数是:11个. export const LIFECYCLE_HOOKS = [ 'beforeCreate', 'created', 'beforeMount', 'mounte ...

  3. win7 mtp

    Sensors MTP Monitor Service 允许MTP设备数据传输,如果该服务被禁用,MTP监视器将不能工作.该服务的默认运行方式是手动,如果你没有使用MTP设备,该功能就可以放心禁用.  ...

  4. window下rabbitmq的配置问题

    最近项目想用个MQ来做业务分离,看了市面上众多产品,最后选了rabbitmq,理由很简单,对window的支持很到位(其实是公司的系列产品都是.net的). 安装方法什么的就不说了,直接到官网下载双击 ...

  5. 5、main方法详解

    public class HelloWorld { public static void main(String[] args){ System.out.print("Hello World ...

  6. 转:VC++线程同步-事件对象

    这是整理孙鑫VC得到的关于线程同步方面的笔记. n       事件对象也属于内核对象,包含一个使用计数,一个用于指明该事件是一个自动重置的事件还是一个人工重置的事件的布尔值,另一个用于指明该事件处于 ...

  7. 架构-LAMP特级学习(网站加速解决方案)

    1.Squid代理缓存技术 2.页面静态化缓存技术 3.Memcache.Redis等缓存服务器 4.Sphinx搜索加速

  8. JavaScript-实现滚动条

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. http1.1 协议响应方面参数

    HTTP1.1   提供了一个必须的Host字段,而且建立好一次连接之后可以重复使用.提高用户的上网体验. 响应信息 HTTP/1.1 200 OK                           ...

  10. caffe与MATLAB连接踩的坑

    刚来公司用的服务器,分配给自己账号,安装了caffe,配好了Makefile.config中的MATLAB dir. 之后问题来了 解决方法: 在Makefile里面,大约第410行那一句话CXXFL ...