0

在 3G 网络上 Ping 到服务器是 80 毫秒,与在 Wifi 上(60 毫秒)大致相同,但建立 SSL 连接的时间在 3G 上是 3.5 秒,在 Wifi 上是 0.5 秒。这与同时使用笔记本电脑和 iPhone 作为客户端相同。

3G塔不忙。互联网连接基本上是空闲的。

如果我在 Wifi 中运行手机,对服务器进行 70 毫秒的 ping,连接握手时间会快 6 倍 - 大约半秒,考虑到 ssl 握手细节,这大致是我所希望的。

这是正常的吗?我只在弗吉尼亚州的 AWS (heroku) 的一台服务器上对其进行了测试,从我的办公室对 Wifi 进行 50 毫秒的 ping 测试。在所有情况下,服务器都会在大约 40 毫秒左右的时间内构建和响应 10kB 的数据。

3G真的那么慢吗?或者我可以对 NSURLConnection 等进行一些调整以更快地握手?

这是在请求之间休眠的 3G 无线电吗?- 我不这么认为,即使我通过 ping 保持 3g 收音机开启,(比如说)同样的事情也会发生。

4

1 回答 1

0

我实际上不是 100% 确定这是答案。

手机上的 GSM 蜂窝无线电会尽可能多地关闭以节省电池。当您启动应用程序时,只要您请求网络资源,收音机就会打开。大约需要一秒钟?(不确定)启动收音机。

所以很难改进。到目前为止,我发现的唯一一件事就是在 main.m 中使用 NSURLConnection - 没有设置委托。这对我来说加快了大约 0.3 秒 - 到达代码中我真正想要上网的点所需的时间。

请注意,如果您实际上不需要上网,这会浪费电池!

    // warm up the radio ASAP. It seems to take over a second for the radio to turn on.
    // This saves about a quarter of a second or so. 404 is typically a fast easy response for a server. 
    NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://yoursite.com/wedonthavethis/"]];
    [NSURLConnection connectionWithRequest:request delegate:nil];
于 2012-09-11T16:17:02.090 回答