4

私のiPhoneアプリでは、さまざまなURLに対してレイテンシテストを行いたいのですが、URLの非同期リクエストを行い、コントロールはconnectionDidFinishデリゲートに到達しますが、正しいアプローチか、iPhoneで待ち時間を測定するためのいくつかの選択肢がありますか?iPhoneでレイテンシテストを行う方法

答えて

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シミュレータテストのために非常に有用である可能性があります。

+0

これは、NSURLCache、URLProxy、およびその他のクラスのURL読み込みスキームを使用していない場合にのみ機能します –

0

Macの空港をiPhoneに共有します(イーサネットに接続します)。その後、Wiresharkを使用してpcapを表示すると、Macでtcpdumpを使用してネットワークトラフィックをキャプチャし、ネットワークレイテンシを最もよく表示します。

+0

いくつかのサンプルコードを共有できますか – sandy

関連する問題