Différence de perf entre C# et VB.Net pour une boucle avec une regex, pourquoi ?
Bonjour,
j'utilise cette boucle en VB.NET
Code:
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:
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.