Ajouter un commentaire

C++ : l'impact du spécificateur final sur les performances

Par:
fredericmazue

lun, 16/03/2020 - 10:00

Souvent le programmeur en C++ cherche la performance de son code. Un très intéressant billet de Microsoft rappelle que l'utilisation du spécificateur final peut être bienvenue pour améliorer les performances.

En effet le spécificateur final indique qu'une classe ne pourra pas être dérivée, ce qui permet au compilateur de mettre en oeuvre la dévirtualisation.

L'appel d'une méthode de classe virtuelle a un coût à l'exécution, car cet appel est effectué indirectement via la table virtuelle de la classe. Cet appel est résolu à l'exécution car le compilateur ne dispose pas des informations nécessaires pour la résolution au moment de la compilation. Lorsque le compilateur peut dévirtualiser grâce au spécificateur final, l'appel de méthode n'est pas résolu à l'exécution mais lors de la compilation ce qui le rend plus performant.

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
  QQQ     QQQ    V     V   SSS    QQQ   
Q Q Q Q V V S Q Q
Q Q Q Q V V SSS Q Q
Q QQ Q QQ V V S Q QQ
QQQQ QQQQ V SSSS QQQQ
Q Q Q