iOS或Android上的并发网络请求的效率如何?

问题描述:

首先,请让我知道如果我应该将这个问题分成iOS和Android两个版本。但是我对这两方面都有所了解,并且从更大的意义上对此感到好奇,所以我想我会这样问。这里的问题是:iOS或Android上的并发网络请求的效率如何?

与桌面不同,通常在移动应用程序上,我们尽量减少网络请求的数量,在我的情况下,我一直只对每个视图发出一个网络请求,直到现在。但是我开始想知道如何同时向不同的API端点发出多个并发的网络请求然后使用这些请求。

我开始考虑这种方法的原因是因为我为应用程序提取了大量数据,并且希望将它们分开以便可以分开进行维护。我知道网络浏览器这样做(因为这是浏览器的工作原理),但我很好奇,如果有人有这种方式构建移动应用程序的经验。

基本上,每当一个视图加载时,我想向不同的API端点(2到4之间)发出多个请求,并使用组合结果,因为我从它们全部收到结果,而不是从一个巨大的结果一个终点。

这是否足够高性能?如果有帮助,我在iOS上使用AFNetworking,在Android上使用OKHTTP。

这取决于。

假设每个HTTP请求的字节开销为100字节。这是一个粗略的近似值;在实践中,开销因HTTP标头(包括cookie或认证凭证),URL(长查询字符串和路径不可用),HTTP版本(HTTP/2具有压缩标头)以及其他因素而异。

如果您将1个MiB响应拆分为4个256 KiB响应,则每个响应的100个字节开销可以忽略不计。它的数据量增加了0.03%。

但是,如果您将100字节的响应分成四个25字节的响应,则每个开销的影响是显着的。你将会传输150%的数据。