iPhone:搜索需要多长时间?

时间:2009-05-24 23:37:33

标签: iphone search local uisearchbar

这是一个非常直截了当的问题: 在本地搜索200-300个字符串数组需要多长时间?远程怎么样?

4 个答案:

答案 0 :(得分:2)

如果您正在搜索字母字符串,并且搜索时间过长,您可以尝试将字符串列表转换为DAWG(定向非循环字图,易于谷歌)。我做了很长的清单(大约170,000字),并且改进率达到了18,000。

jrdoner

答案 1 :(得分:1)

搜索?在什么意义上?

如果您只是在跑步:

[myStringArray containsObject:searchString];

然后可以在几微秒内搜索200-300个字符串。

如果您正在搜索:

BOOL found = NO
for (NSString *string in myStringArray)
{
    if ([string rangeOfString:searchString].location != NSNotFound)
    {
        found = YES;
         break;
    }
}

然后它几乎完全取决于每个字符串的长度,但对于少于几十个字符的字符串,它与之前的搜索速度大致相同。

远程搜索完全不同 - 但这样的操作是一个巨大的浪费时间。它完全基于网络延迟。平均250毫秒ping,远程操作的平均时间大约是半秒或更长,因为生成网络数据包需要很长时间,通过网络发送,等待远程服务器接收,等待远程操作要处理的服务器,等待响应并解析响应。

如果这个问题是一个问题:我应该只获取所有30个字符串并在本地搜索 - 然后:是的,在本地搜索。一般来说:本地搜索更快,直到下载所有结果成为负担(超过3G,我通常认为快速透明下载的最大值为50kB)。

答案 2 :(得分:1)

微秒。它非常快。当我发现这一点时,我也很惊讶:p

答案 3 :(得分:0)

这是关于本地字符串搜索。

我已经实现了Trie数据结构来索引 fast 自动完成的字符串。 http://en.wikipedia.org/wiki/Trie