如何在iPhone中执行延迟测试

时间:2011-02-02 15:47:41

标签: objective-c cocoa-touch ios4 network-programming network-protocols

我想对我的iPhone应用程序中的不同网址执行延迟测试,一种方法是对网址进行异步请求,并根据控件何时到达connectionDidFinish委托来测量持续时间,这是iPhone中可用的正确方法或一些替代方案来衡量延迟时间?

2 个答案:

答案 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,这将为您提供最佳的网络延迟视图。