Hier ist eine sehr einfache Frage: Wie lange dauert es, ein Array von 200-300 Strings lokal zu suchen? Was ist mit Fernzugriff?iPhone: Wie lange dauert es zu suchen?
Antwort
Suchen? In welchem Sinne?
Wenn Sie mit einfach:
[myStringArray containsObject:searchString];
dann 200-300 Strings können in wenigen Mikrosekunden durchsucht werden.
Wenn Sie suchen:
BOOL found = NO
for (NSString *string in myStringArray)
{
if ([string rangeOfString:searchString].location != NSNotFound)
{
found = YES;
break;
}
}
Dann ist es fast völlig abhängig von der Länge der einzelnen Strings, aber für Strings weniger als ein paar Dutzend verkohlt es etwa die gleiche wie die vorherige Suchgeschwindigkeit ist.
Die Fernsuche ist völlig anders - aber für eine Operation wie diese ist sie eine kolossale Zeitverschwendung. Es basiert vollständig auf Netzwerklatenz. Bei einem durchschnittlichen Ping von 250 ms beträgt die durchschnittliche Zeit für eine Remote-Operation etwa eine halbe Sekunde oder mehr, nur weil es so lange dauert, die Netzwerkpakete zu generieren, über das Netz zu senden, auf den Empfang des Remote-Servers zu warten und auf die Fernbedienung zu warten Server zu verarbeiten, auf die Antwort zu warten und die Antwort zu parsen.
Wenn diese Frage eine runde Frage war: soll ich nur alle 30 Strings holen und lokal suchen - dann: ja, lokal suchen. Allgemein: Lokale Suche ist schneller, bis die Zeit, die zum Herunterladen aller Ergebnisse benötigt wird, eine Last wird (über 3G halte ich normalerweise 50kB für das Maximum für schnelle transparente Downloads).
Wenn Sie alphabetische Zeichenfolgen suchen und die Suchzeit unerschwinglich ist, können Sie versuchen, die Zeichenfolgenliste in eine DAWG zu konvertieren (gerichteter azyklischer Wortgraph, einfach zu googeln). Ich habe dies für eine sehr lange Liste (ungefähr 170.000 Wörter) getan und eine Verbesserungsrate von 18.000 bekommen.
jrdoner
Dies ist in Bezug auf lokale String-Suchen.
Ich habe die Trie Datenstruktur implementiert, um Strings für schnelle Autovervollständigung zu indexieren. http://en.wikipedia.org/wiki/Trie
Mikrosekunden. es ist extrem schnell. Ich war auch überrascht, als ich davon erfuhr: p
- 1. Timeout-Funktion, wenn es zu lange dauert
- 2. form.submit() dauert zu lange
- 3. Funktion überspringen, wenn es zu lange dauert
- 4. ProcessBuilder und Process.waitFor(), wie lange dauert es?
- 5. Hibernate beitreten zu lange dauert
- 6. UIActivityViewController dauert lange Zeit zu präsentieren
- 7. AOSP Reposynchronisation dauert zu lange
- 8. Wie lange dauert es, um Ruby als Skriptsprache zu lernen?
- 9. Play Framework dauert zu lange
- 10. Eclipse Aktualisierung dauert zu lange
- 11. Scipy.optimize minimieren dauert zu lange
- 12. ios - generateCGImagesAsynchronousForTimes dauert zu lange
- 13. Wie lange dauert der Sitzungsspeicher auf dem iPhone/iPad?
- 14. Timeout-Funktion, wenn es zu lange dauert zu beenden
- 15. Wie lange dauert ein Bündel?
- 16. Bild dauert zu lange zum Laden?
- 17. Emulator dauert zu lange, um zu starten
- 18. Wie lange dauert meine Sitzung?
- 19. Wie kann ich genau bestimmen, wie lange es dauert, eine Funktion auf dem iPhone anzurufen?
- 20. Warum dauert es so lange, eine Tabelle zu erstellen?
- 21. Warum dauert es so lange, eine ASP.NET-Website zu starten?
- 22. NUnit: Test abbrechen, wenn es zu lange dauert
- 23. Android Websocket Client dauert zu lange Timeout
- 24. Neo4j: Aktualisierungsbeziehung dauert zu lange, 20s
- 25. Löschen über Autofilter dauert zu lange
- 26. Javascript Formular Validierung dauert lange zu laufen
- 27. Shuffle-Phase dauert zu lange Hadoop
- 28. Titan-Index-Update dauert zu lange
- 29. Unterschreiben xml mit Smartcard dauert zu lange
- 30. Android-Socket-Verbindung dauert zu lange