1

对于我的 tvOS 应用程序,我需要在应用程序启动时下载一个大约 500 Mb 的文件。将NSURLSession大文件直接下载到磁盘是一项简单的任务。

根据网络分析器,我能够非常快地下载文件。图表显示我在过去 24 秒内的平均速度约为每秒 6Mb。 在此处输入图像描述

到目前为止,一切都很好。我的应用程序的另一部分需要通过自定义 NetService 进行通信。所以我正在准备和发布服务:

self.service = [[NSNetService alloc] initWithDomain:@"local."
                                               type:SERVICE_NAME
                                               name:@"Remote receiver"
                                               port:0];
[self.service publishWithOptions:NSNetServiceListenForConnections];

发布发生在应用程序生命的第 30 秒。在服务后,didPublishMethod我观察到网络分析器的 2 个变化。ipv4 和 ipv6 状态为“正在侦听”的前 2 个新的活动 TCP 连接。第二个是第一个活动连接的下载速度令人惊讶地急剧下降。在此处输入图像描述

如您所见,在第 30 秒后下载速度降至几 Kb/s。问题是这里发生了什么?NSNetService干扰吗NSURLSession?为什么本地服务的发布会影响单独的 TCP 连接?如果在连接之间共享资源,为什么会NSURLSession收到这么小的份额?

4

0 回答 0