Sto cercando di ottimizzare la ricerca di una stringa in un file di testo di grandi dimensioni (300-600mb). Usando il mio metodo attuale, ci vuole troppo tempo.C# ricerca di file di testo di grandi dimensioni
Attualmente sto usando IndexOf
per cercare la stringa, ma il tempo necessario è troppo lungo (20 secondi) per creare un indice per ogni riga con la stringa.
Come ottimizzare la velocità di ricerca? Ho provato Contains()
ma anche questo è lento. Eventuali suggerimenti? Stavo pensando alla partita di regex ma non vedo che abbia un significativo aumento di velocità. Forse la mia logica di ricerca è viziata
esempio
while ((line = myStream.ReadLine()) != null)
{
if (line.IndexOf(CompareString, StringComparison.OrdinalIgnoreCase) >= 0)
{
LineIndex.Add(CurrentPosition);
LinesCounted += 1;
}
}
Cosa stai cercando esattamente? Parole? – Lloyd
Qual è il tuo CompareString .. si prega di mostrare un esempio di ciò che stai cercando .. – MethodMan
Sei sicuro che sia la tua parte di ricerca? Quanto tempo ci vuole per non fare alcun controllo e basta leggere il file riga per riga? –