Vitesse d'exécution en C# trop longue comparée à C++
Environnement Visual Studio Community 2015
Bonjour à tous,
J'ai, pour projet, le développement d'une application, dans laquelle environ 1 million de calculs matriciels (image de coordonnées trigonométriques à convertir en nombres complexes) doivent être effectués.
J'ai donc réalisé un test assez bidon sur 2 vulgaires boucles imbriquées.
En C# (voir ci-dessous), la version release met 48 secondes pour afficher le "OK" final.
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| static void Main(string[] args)
{
int c = 0;
for (int a = 0; a < 10000000; a++)
{
for (int b = 0; b < 10000; b++)
{
c = b;
}
}
Console.WriteLine("OK...");
} |
En C++ (voir ci-dessous), la version release ne met qu'une seconde pour le même travail,
soit un rapport de 48 !
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| int main()
{
int c = 0;
for (int a = 0; a < 10000000; a++)
{
for (int b = 0; b < 10000; b++)
{
c = b;
}
}
cout << "OK...\n";
return 0;
} |
Ai-je fait une erreur dans la version release en C# ?
Je préfèrerai réaliser l'application en C#, mais si un tel écart subsiste, il faudra passer sous C++.
Il est évident que ce test n'est pas représentatif des calculs futurs, mais le résultat m'amène des craintes relatives à la durée du traitement qui sera beaucoup plus compliqué.
Merci par avance pour vos commentaires.