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

时间:2016-12-24 03:44:26

标签: android ios networking afnetworking okhttp

首先,如果我将这个问题分成一个用于iOS和一个用于Android,请告诉我。但我正在研究两者,并且从更大的图像意义上对此感到好奇,所以我想这会问这个问题。这是问题:

与桌面不同,通常在移动应用上我们会尽量减少网络请求的数量,而在我的情况下,我一直只是为每个视图发出一次网络请求。但我已经开始想知道如何同时对不同的API端点发出多个并发网络请求,然后再使用它们。

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

基本上,无论何时加载视图,我都希望向不同的API端点(2到4之间)发出多个请求,并使用合并后的结果,因为我从所有这些端点收到结果,而不是一个巨大的结果来自单一终点。

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

1 个答案:

答案 0 :(得分:1)

取决于。

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

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

但如果将100字节响应拆分为4个25字节响应,则每个开销的影响是巨大的。您将传输150%以上的数据。