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

标签 android ios networking afnetworking okhttp

首先,请告诉我是否应该将这个问题分成一个针对 iOS 的问题和一个针对 Android 的问题。但我正在研究两者,并且从更大的角度对此感到好奇,所以我想我会这样问。这是问题:

与在桌面上不同,通常在移动应用程序上,我们会尽量减少网络请求的数量,而在我的例子中,到目前为止,我一直只对每个 View 发出一个网络请求。但是我开始想知道同时向不同的 API 端点发出多个并发网络请求然后使用它们的性能如何。

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

基本上,无论何时加载 View ,我都想向不同的 API 端点(2 到 4 之间)发出多个请求,并在我从所有这些端点收到返回结果时使用组合结果,而不是来自一个巨大的结果单端点。

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

最佳答案

视情况而定。

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

如果将 1 MiB 的响应拆分为四个 256 KiB 的响应,则每个响应 100 字节的开销完全可以忽略不计。多了 0.03% 的数据。

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

关于android - iOS 或 Android 上的并发网络请求的效率如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41310150/

相关文章:

android - 是否有一些推荐的方法来为 RecyclerView 中使用的 ParseObject 创建一个 id?

java - 程序类型已经存在 : info. hoang8f.fbutton.BuildConfig

ios - 如何以编程方式将触摸事件伪造到 UIButton?

ios - 以更简洁的方式在 Swift 中访问 JSON Key

android - 使用 AndEngine 和 Box2D 制作英雄跳跃

java - Android 多点触控 - TouchMove 事件中的 IllegalArgumentException

ios - Facebook 用户信息以及联系电话

qt - QNetworkReply::UnknownNetworkError 来自 QNetworkAccessManager::get 当使用密码保护的代理服务器请求 https 时

java - snmp网络程序化建网方案算法

ios - 从 iOS 应用程序连接到 sFTP