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中显示出来,但每次都要从网络上请求,会严重影响用 ...
随机推荐
- 【Qt】splitter
一段简单的切割窗体的程序: <span style="font-size:18px;">#include "mainwindow.h" #inclu ...
- 通过Java发送邮件和接收邮件的工具类
一.第一种 使用SMTP协议发送电子邮件 第一步:加入mail.jar包 (1)简单类型 package com.souvc.mail; import java.util.Date; import j ...
- HTTP 304状态分析
在看http log日志发现很多304状态的标识 HTTP 304: Not Modified ###请求后读取本地缓存的文件标准解释是:Not Modified 客户端有缓冲的文档并发出了 ...
- Emacs 文件中的查找操作
1,在本文件中查找 list-matching-lines 命令会列出本文件中所有出现text的地方.下面是它的一个输出示例: 7 matches for "ngx_http_wait_re ...
- WordPress网站搬家全过程 亲身体验WordPress搬家,总结几点
需要移动的文件主要是网站文件和数据库文件,如果是简单的wordpress 操作就是:备份网站文件,导出数据库文件,上传网站文件,导入数据库文件,移动网站文件,修改wordpress的wp-conf ...
- POJ 3007 Organize Your Train part II (字典树 静态)
Organize Your Train part II Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6478 Acce ...
- Android WebDriver 浏览器自动测试工具介绍
Selenium WebDriver 是浏览器自动测试工具,提供轻量级和优雅的方式来测试web应用.Selenium WebDriver作为Android SDK extra,支持Android 2. ...
- iOS - AsyncSocket 的使用
1.AsyncSocket 基于 CFSocket.GCD 进行的封装(OC). 支持 TCP 和 UDP. 完整的回调函数(用于处理各种回调事件,连接成功,断开连接,收到数据等). 需要注意的问题: ...
- JMeter学习笔记--使用HTTP信息头管理器
使用HTTP信息头管理,可以帮助测试人员设定JMeter发送的HTTP请求头所包含的信息.HTTP信息头中包含有”User-Agent".“Pragma".”Referer&quo ...
- OAF_OAF控件系列7 - Tree的实现(案列)
2014-06-02 Created By BaoXinjian