【发布时间】:2010-12-22 00:01:02
【问题描述】:
从我的应用上传速度太慢,我想收集一些真实数据,了解时间花在哪里。
例如,以下是请求经历的几个阶段:
- 初始无线电连接(EDGE 中延迟的重要来源)
- DNS 查找(如果未缓存)
- SSL/TLS 握手。
- HTTP 请求上传,包括数据。
- 服务器处理时间。
- HTTP 响应下载。
我可以解决其中的大部分问题(例如,通过较早地通过虚拟请求启动无线电、建立虚拟 HTTP 1.1 连接等),但我想知道哪些实际上导致了网络缓慢,on实际设备,我的实际数据,使用实际的手机信号塔。
如果我使用 WiFi,我可以使用 Wireshark 和一些同步时钟跟踪其中的一堆,但我需要蜂窝数据。
有没有什么好的方法可以得到这个详细的分类,而不是必须(gak!)使用非常低级的套接字函数来重现我的普通 http 请求?
【问题讨论】:
-
当你说慢的时候我们说话有多慢?
-
大约 3-10 秒。但是出于我的特定目的,我真的很想将其减少到 1-3 秒。服务器端处理只是其中很小的一部分。我可以在启动时间和上传大小之间做出一些权衡(例如,通过进行更昂贵、更激进的数据压缩)。我根据记录的 EDGE/3G 延迟和带宽做了一些粗略的判断,但我更愿意根据真实的观察数据做出这样的决定。
标签: iphone optimization networking ios bandwidth