16、网络编程基础与Cocoa URL加载系统详解

网络编程基础与Cocoa URL加载系统详解

1. 网络编程的重要性及核心原则

在当今移动设备普及且网络连接无处不在的时代,网络编程至关重要。众多iOS应用通过各种方式使用网络,如iCloud同步、GameKit通信框架或直接与服务器通信。然而,广域移动网络(如EDGE、3G和HSDPA+)存在高延迟、低吞吐量的问题,这要求开发者遵循以下核心原则:
- 永远不要在主线程中访问网络。
- 尽可能使用异步网络原语。
- 使用流来处理所有数据。
- 保持数据处理和传输处理相互独立。

2. 本地文件系统与网络访问的差异

本地文件系统和网络访问在性能影响因素上有明显差异,主要体现在以下两个方面:
| 因素 | 本地磁盘 | 网络 |
| — | — | — |
| 延迟(Latency) | 通常指底层存储介质的寻道时间 | 指命令包的往返时间 |
| 吞吐量(Throughput) | 通常很高,每秒可移动数百兆字节 | 从每秒几十兆字节到几千字节不等 |

另外,可用带宽方面,本地存储读写通过硬件总线,除非同时使用多个磁盘,否则整体吞吐量与物理介质匹配;而网络上可用带宽通常更受限,单个操作易饱和连接,并行操作会因带宽分配导致所有操作变慢。例如,许多常见的接入点和路由器只允许单个客户端对单个目标资源同时发起四个HTTP请求。

在请求资源时,从同一网络位置请求多个不同资源通常差异不大,但在本地磁盘上同时操作多个文件可能会导致严重的性能下降,原因是磁盘的寻道时间会导致磁盘抖动。不过,固态存储的发展使这一问题在配备固态硬盘(SSD)的系统中得到缓解,如iPhone就使用了固

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值