【问题标题】:NSXMLParser response timeNSXMLParser 响应时间
【发布时间】:2014-07-07 11:49:22
【问题描述】:

如何获取解析器请求的响应时间?

NSString *connString = [NSString stringWithFormat:@""];

NSURL *url = [[NSURL alloc] initWithString:connString];
NSData *data = [NSData dataWithContentsOfURL:url];

parserUserData = [[NSXMLParser alloc] initWithData:data];
[parserUserData setDelegate:self];

我使用了以下示例,但它没有返回响应时间,只返回响应。

NSError *error = nil;
NSString *string = [[NSString alloc] initWithContentsOfURL:url
                                                  encoding:NSUTF8StringEncoding
                                                     error:&error];

if (error != nil)
{
    NSLog(@"error: %@", error);
}
else
{
    NSLog(@"response: %@", string);
}

【问题讨论】:

  • 您想要请求数据或解析或两者都经过的时间量吗?你必须自己计算这个。例如,如果您要查找经过的时间,请在请求之前执行CFAbsoluteTime start = CFAbsoluteTimeGetCurrent();,然后在最后执行CFTimeInterval elapsed = CFAbsoluteTimeGetCurrent() - start;。这将为您提供elapsed 的秒数。如果这是您正在寻找的内容,我会将其发布为答案。如果不是,请澄清。
  • 是的,这就是我想要的。

标签: ios parsing nsxmlparser


【解决方案1】:

因为解析是同步进行的,所以你可以在解析前捕获开始时间,然后在完成后计算经过的时间:

CFAbsoluteTime start = CFAbsoluteTimeGetCurrent();

NSString *connString = [NSString stringWithFormat:@"..."];

NSURL *url = [[NSURL alloc] initWithString:connString];
NSData *data = [NSData dataWithContentsOfURL:url];

CFTimeInterval elapsed = CFAbsoluteTimeGetCurrent() - start;

NSLog(@"dataWithContentsOfURL elapsed time: %.3f", elapsed);

parserUserData = [[NSXMLParser alloc] initWithData:data];
[parserUserData setDelegate:self];

[parserUserData parse];

elapsed = CFAbsoluteTimeGetCurrent() - start;

NSLog(@"dataWithContentsOfURL & parse elapsed time: %.3f", elapsed);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-16
    • 1970-01-01
    • 1970-01-01
    • 2020-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多