Bonjour,

j'utilise cette boucle en VB.NET

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
"Dim mStreamReader As StreamReader = New StreamReader("10-million-combos.txt")
    line = mStreamReader.ReadLine()
    Do While (line IsNot Nothing)
        counter += 1
        If Regex.IsMatch(line, "123456$") Then counter2 += 1
        line = mStreamReader.ReadLine()"
Pour parser un fichier de 2 go, compter le nombre de lignes, compter le nombre d’occurrences. Rien de bien spécial jusqu'ici. Ca s’exécute sur ma machine en 100,15s.

Ce qui m'agace, c'est que le même code en C# s’exécute en 30,05s.

C#

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    Regex rgx = new Regex("123456$");
    int counter = 0;
    int counter2 = 0;
    using (StreamReader sr = new StreamReader(@"10-million-combos.txt"
+))
    {
        String line;
        while ((line = sr.ReadLine()) != null)
        {
            ++counter;
            if (rgx.IsMatch(line))
            {
                ++counter2;
            }
        }
    }
Je comprends pas ce qui ne va pas dans mon code. Ca semble globalement être la même chose. Une idée ? Le code a été fait sous VS 2010 P.I.

Merci.