Bonjour à tous,
J'essaie depuis un moment de comprendre comment certains containers de la STL sont optimisés et j'avoue que je suis bluffé par les performances de certains d'entre eux et notamment de la classe std::queue. J'ai réimplémenté rapidement une file (FIFO) basique :
J'ai lancé un code également simple du style :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
puis j'ai relancé ce code avec un objet de la classe std::queue<uint> en lieu et place de ma classe. Le code avec la classe de la STL est près de 10 fois plus rapide que le code avec la file que j'ai implémentée (et ceci que l'on considère les push ou les pop). Certes l'implémentation de la classe myqueue est basique mais je ne vois pourtant pas les améliorations que je pourrais ajouter à ce code pour le rendre 10 fois plus rapide. Je précise que j'ai compilé ce code avec g++ -03 . Quelqu'un saurait-il d'où proviennent les améliorations manifestement présentes dans la STL ? Gestion de la mémoire optimisée ? Options de compilation particulières ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Merci par avance pour vos commentaires.

 

 
		
		 
         
 

 
			
			


 
   


 std::queue très rapide !?
 std::queue très rapide !?
				 Répondre avec citation
  Répondre avec citation
Partager