iOS网络_优化请求性能
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网络_优化请求性能的更多相关文章
- 【读书笔记】iOS网络-优化请求性能
一,度量网络性能 1,网络带宽 用于描述无线网络性能的最常见度量指标就是带宽.在数字无线通信中,网络带宽可以描述为两个端点之间的通信通道每秒钟可以传输的位数.现代无线网络所能提供的理论带宽是很高的.不 ...
- 【读书笔记】iOS-网络-优化请求性能
一,度量网络性能 1,网络带宽 用于描述无线网络性能的最常见度量指标就是带宽.在数字无线通信中,网络带宽可以描述为两个端点之间的通信通道每秒钟可以传输的位数.现代无线网络所能提供的理论带宽是很高的.不 ...
- IOS网络编程之请求内容
资料均来自互联网,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. 人魔七七:http://www.cnblogs.com/qiqibo/ 一个http请求只要由三 ...
- iOS网络之数据请求GET和POST
1. HTTP和HTTPS协议 1> URL URL全称是Uniform Resource Locator(统一资源定位符)通过1个URL,能找到互联网上唯一的1个资源 URL就是资源的地址.位 ...
- iOS网络开发-AFNetworking请求asp.net WebService
看到园子有位朋友需要使用AFN框架请求 WebService,所以就整理了一下,demo下载链接在底部 编写WebService可以看这篇博客 http://www.cnblogs.com/linmi ...
- ios网络:应用一个请求的7个步骤
Splitting big tasks into small tasks is often one of the best ways to solve a problem. Thus, in the ...
- iOS网络高级编程:iPhone和iPad的企业应用开发(书籍学习)
作者:Jack Cox.Nathan Jones.John Szumski 译者:张龙 勘误 前言 第 I 部分 理解iOS与企业网络 这一部分从高层次概览了iOS网络以及针对移动网络架构的最佳 ...
- Java生鲜电商平台-SpringCloud微服务架构中网络请求性能优化与源码解析
Java生鲜电商平台-SpringCloud微服务架构中网络请求性能优化与源码解析 说明:Java生鲜电商平台中,由于服务进行了拆分,很多的业务服务导致了请求的网络延迟与性能消耗,对应的这些问题,我们 ...
- iOS网络加载图片缓存策略之ASIDownloadCache缓存优化
iOS网络加载图片缓存策略之ASIDownloadCache缓存优化 在我们实际工程中,很多情况需要从网络上加载图片,然后将图片在imageview中显示出来,但每次都要从网络上请求,会严重影响用 ...
随机推荐
- svn log笔记
背景: svn,版本 1.7.8 以下所有命令直接和svn服务器进行交互并没有checkout代码到本地 1.查询分支从拉出来到现在的变更: svn log branche_url --stop-on ...
- TP框架中的A方法和R方法
ThinkPHP 跨模块调用操作方法(A方法与R方法) 跨模块调用操作方法 前面说了可以使用 $this 来调用当前模块内的方法,但实际情况中还经常会在当前模块调用其他模块的方法.ThinkPHP 内 ...
- element-ui 源码架构
1.项目结构 2.src下的入口文件 https://github.com/ElemeFE/element/blob/dev/src/index.js 入口文件实现的功能为: (1)国际化配置 (2) ...
- 〖Linux〗以后台方式启动/结束指定程序/命令(不受 exit 或点击窗口关闭按钮等终端退出操作的影响)
#!/bin/bash - #=============================================================================== # # F ...
- x-code的使用技巧心得
xcode是苹果开发的一款图形化,而且用户交互很好的开发软件开发工具. 它支持 C语言 o-bjiect语言 c++ 等多种语言的开发.功能强大,俗话说的好,工欲善其事,必先利其器,以下将描写叙述一下 ...
- Spark GraphX 的数据可视化
概述 Spark GraphX 本身并不提供可视化的支持, 我们通过第三方库 GraphStream 和 Breeze 来实现这一目标 详细 代码下载:http://www.demodashi.com ...
- IE和火狐兼容常见问题
文章转自http://www.cnblogs.com/asqq/archive/2013/03/09/3194994.html 1,document.form.item/document.ID IE中 ...
- HDUOJ-----2852 KiKi's K-Number(树状数组+二分)
KiKi's K-Number Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- 【C++】const成员函数
形式: 在成员函数后面加上const限定词,表示不会修改对象内容. 例如Circle类: class Circle { double r; public: Circle(double newr) { ...
- Windows Server 2008的远程控制修改端口,谨防非法远程连接
1.首先在Windows Server 2008服务器系统桌面上依次单击“开始”/“运行”命令,在弹出的系统运行对话框中,输入字符串命令“regedit”,单击回车键后,打开对应系统的注册表编辑界面; ...