我想对我的iPhone应用程序中的不同网址执行延迟测试,一种方法是对网址进行异步请求,并根据控件何时到达connectionDidFinish委托来测量持续时间,这是iPhone中可用的正确方法或一些替代方案来衡量延迟时间?
答案 0 :(得分:5)
我不确定你是如何定义延迟的。请查看wiki article以获得一些说明。
我将了解响应时间,以了解网络滞后的情况,这在移动连接中非常有趣。我在我开发的一个应用程序中使用这种方法:
- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse
{
...
self.reqStart = [NSDate date];
self.url = [[request URL] absoluteString];
NSLog(@"--> Requesting : %@", url);
...
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)aResponse
{
NSLog(@"<-- Response time %fs : %@", [[NSDate date] timeIntervalSinceDate:reqStart], url);
...
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSLog(@"<== Request time %fs : %@", [[NSDate date] timeIntervalSinceDate:reqStart], url);
...
}
用于模拟器测试的Throttling bandwidth可能非常有用。
答案 1 :(得分:0)
将Mac的机场分享到iPhone(将其连接到以太网)。然后在Mac上使用tcpdump捕获网络流量,使用Wireshark查看pcap,这将为您提供最佳的网络延迟视图。