gpt4 book ai didi

iphone - iOS - 连接后端 API 服务器时出现 3G 连接速度慢的问题

转载 作者:行者123 更新时间:2023-12-03 20:15:07 25 4
gpt4 key购买 nike

目前我正在开发一个需要多次调用后端服务器的应用程序。当使用 WiFi 时,应用程序连接良好并且下载数据的速度非常快,但是当使用 3G 时,连接似乎有点不稳定并且非常慢。

所以我做了一些非常简单的测试用例(您可以在下面找到)。而且 NSURLConnection 似乎没有以相同的响应速度获取数据。

(请注意,我已经删除了我连接到的真实服务器的 URL)

测试用例:

在服务器上放置以下 php 脚本:

<?php echo 'hello world' ?>

抓起一部 iPhone,关闭 WiFi 并确保其具有正常的 3G 连接。

使用以下 Objective-C 代码连接到服务器:

NSURL * url = [NSURL URLWithString:@"http://someserver.com/test.php"];

NSURLRequest * request = [NSURLRequest requestWithURL:url];

NSDate * startDate = [NSDate date];

NSLog(@"START");

NSURLConnection * connection = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

NSLog(@"%3.2f", -[startDate timeIntervalSinceNow]);

这在 3G 上返回 - 1.47 秒。因此,如果您第一次使用 3G 连接,这可能是正常的,因为它需要初始化。但现在有趣的部分来了。如果您多次重复此调用,它将返回以下内容:

1.47秒

2.33秒

1.1秒

我使用两部不同的 iPhone 和两个不同的提供商对此进行了测试:T-Mobile 和 KPN。我还使用我通常使用的 NSURLConnection 的异步版本进行了尝试,但这也返回相同的结果。

(我还做了其他事情:检查Apple的Reachabilty.h,通过用ip号替换服务器url来删除DNS查找,使用其他服务器并使用https://www.google.nl/search?q=%i,arc4random(),还尝试了[ NSString alloc]initWithContentOfURL]。所有都返回类似的结果,除了使用 iPhone 浏览器时:Safari,它立即响应。)

我还使用 Android 手机测试了类似的东西,但随后我得到了 500 毫秒的快速响应(使用相同的提供商)。

以前有人遇到过这种情况吗?如果是这样,您是如何解决此问题的以及导致此连接问题的原因是什么?

最佳答案

我有一个类似的问题,自然地通过 3g 连接,post 请求会稍微慢一点,具体取决于发送的数据量。但是,如果我发送同步请求,它对我来说比异步方法更快。我注意到,通过使用异步的 3g 连接,操作系统必须关闭连接,您可能会在日志中注意到“purgeIdleCellConnections:找到一个要清除 conn”似乎会增加方法执行的时间。

关于iphone - iOS - 连接后端 API 服务器时出现 3G 连接速度慢的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13239714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com