Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Considérations de Performance avec les Smart Pointers | Sujets Avancés
Pointeurs Intelligents C++
course content

Contenu du cours

Pointeurs Intelligents C++

Pointeurs Intelligents C++

1. Introduction aux Pointeurs Intelligents
2. Pointeurs Uniques
3. Pointeurs Partagés
4. Pointeurs Faibles
5. Références
6. Sujets Avancés

book
Considérations de Performance avec les Smart Pointers

Surcharge des pointeurs intelligents

Les pointeurs intelligents introduisent une certaine surcharge par rapport aux pointeurs bruts, principalement en raison de leurs fonctionnalités supplémentaires telles que le comptage de références ou le suivi de suppression. Même si cette surcharge est souvent négligeable, en tant que développeurs orientés performance, il est important d'être conscient des implications potentielles sur les performances.

Exemple

Supposons que vous travaillez sur une application embarquée héritée qui utilise des milliers de pointeurs bruts. Si vous remplacez tous ces pointeurs bruts par des pointeurs partagés, vous pourriez observer un impact notable sur le débit de l'application.

Une meilleure approche serait de refactoriser lentement votre code, en mesurant les performances après chaque itération, et en choisissant une combinaison de pointeurs partagés et uniques en fonction du cas d'utilisation et de l'applicabilité.

Minimiser la surcharge des pointeurs partagés

Les pointeurs partagés sont plus coûteux en raison de leur mécanisme de comptage de références. Ils augmentent le compteur de références chaque fois qu'une copie est faite et le diminuent lorsque le pointeur sort de la portée ou est réinitialisé. Cela peut affecter les performances, surtout dans des scénarios à haute fréquence ou lors de l'utilisation d'un grand nombre de pointeurs partagés.

La solution est d'éviter de faire des copies inutiles de pointeurs partagés et d'utiliser uniquement des pointeurs partagés lorsque les pointeurs uniques ne peuvent pas répondre à votre cas d'utilisation.

Mesurer et profiler

Mesurez et profilez régulièrement les segments de code qui utilisent des pointeurs intelligents pour identifier les goulots d'étranglement et optimiser les performances. Vous pouvez utiliser des outils comme Google Benchmark ou Valgrind à cet effet.

Quel pointeur intelligent devriez-vous utiliser s'il n'y a qu'une seule ressource à gérer, mais que la ressource sera accessible par plusieurs classes dans votre code ?

Quel pointeur intelligent devriez-vous utiliser s'il n'y a qu'une seule ressource à gérer, mais que la ressource sera accessible par plusieurs classes dans votre code ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 6. Chapitre 3
We're sorry to hear that something went wrong. What happened?
some-alt