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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.