J'essaie d'optimiser la recherche d'une chaîne dans un fichier texte volumineux (300-600mb). En utilisant ma méthode actuelle, cela prend trop de temps.C# recherche fichier texte volumineux
Actuellement, j'ai utilisé IndexOf
pour rechercher la chaîne, mais le temps qu'il faut est trop long (20s) pour construire un index pour chaque ligne avec la chaîne.
Comment puis-je optimiser la vitesse de recherche? J'ai essayé Contains()
mais c'est lent aussi. Aucune suggestion? Je pensais match regex mais je ne vois pas cela ayant un coup de pouce de vitesse significative. Peut-être que ma logique de recherche est erronée
exemple
while ((line = myStream.ReadLine()) != null)
{
if (line.IndexOf(CompareString, StringComparison.OrdinalIgnoreCase) >= 0)
{
LineIndex.Add(CurrentPosition);
LinesCounted += 1;
}
}
Que recherchez-vous exactement? Mots? – Lloyd
Quelle est votre CompareString .. s'il vous plaît montrer un exemple de ce que vous cherchez .. – MethodMan
Êtes-vous sûr que c'est votre partie de recherche? Combien de temps faut-il pour ne rien vérifier et lire le fichier ligne par ligne? –