Domanda

Ecco una domanda molto e dritto in avanti: Quanto tempo ci vorrà per cercare un array di stringhe 200-300 a livello locale? Che dire a distanza?

È stato utile?

Soluzione

Ricerca? In che senso?

Se si sta semplicemente eseguendo:

[myStringArray containsObject:searchString];

quindi 200-300 stringhe possono essere cercati in pochi microsecondi.

Se siete alla ricerca:

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

Poi è quasi interamente dipendente dalla lunghezza di ogni stringa, ma per le stringhe di meno di una dozzina carbonizza è circa uguale alla precedente velocità di ricerca.

ricerca Remote è completamente diverso - ma è un colossale spreco di tempo per un'operazione come questa. Esso si basa interamente sulla latenza di rete. Capire in media 250ms ping, un tempo medio per un funzionamento a distanza è di circa mezzo secondo o più semplicemente perché ci vuole molto tempo per generare i pacchetti di rete, inviati tramite la rete, attendere che il server remoto per ricevere, attendere l'remoto server per processo, attendere la risposta e analizzare la risposta.

Se questa domanda fosse un modo rotonda di chiedere: devo solo prendere tutti i 30 archi e la ricerca a livello locale - allora: sì, ricerca a livello locale. In generale:. Ricerca locale è più veloce fino a che il tempo necessario per scaricare tutti i risultati diventa un peso (su reti 3G, io di solito considero 50kB circa il massimo per download veloci trasparenti)

Altri suggerimenti

Se state cercando le stringhe alfabetiche, e il tempo di ricerca è proibitivo, si potrebbe provare a convertire la stringa in un elenco DAWG (grafico parola aciclico diretto, facile da google). Ho fatto questo per una lista molto lunga (circa 170.000 parole) e ottenuto un rapporto di miglioramento di 18.000.

jrdoner

microsecondi. la sua estremamente veloce. Sono rimasto sorpreso, così quando ho scoperto che: p

Questo è per quanto riguarda le ricerche di stringa locali.

Ho implementato la struttura dei dati Trie in stringhe di indice per veloce completamento automatico. http://en.wikipedia.org/wiki/Trie

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top