"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Les pointeurs intelligents en C++ entraînent-ils une surcharge de mémoire et de temps importante ?

Les pointeurs intelligents en C++ entraînent-ils une surcharge de mémoire et de temps importante ?

Publié le 2024-11-13
Parcourir:296

Do Smart Pointers in C   Come with a Significant Memory and Time Overhead?

Surcharge de mémoire et de temps des pointeurs intelligents en C

Pointeurs intelligents, comme std::shared_ptr et std::unique_ptr en C 11, fournir une gestion automatique de la mémoire et simplifier la sémantique de propriété. Cependant, certains développeurs peuvent s'interroger sur l'impact potentiel sur les performances de l'utilisation de pointeurs intelligents par rapport aux pointeurs traditionnels. un suppresseur non trivial est fourni. Cependant, std::shared_ptr nécessite toujours de la mémoire supplémentaire pour le compteur de référence, bien qu'une quantité relativement faible. construction si le suppresseur fourni doit être copié ou le pointeur initialisé comme nul, et pendant la destruction pour détruire le propriétaire object.

std::shared_ptr subit une surcharge de temps principalement pendant la construction pour créer le compteur de référence, pendant la destruction pour décrémenter le compteur de référence et potentiellement détruire l'objet, et pendant l'affectation pour incrémenter le compteur de référence. De plus, ces incréments/décréments sont atomiques pour la sécurité des threads, contribuant ainsi à la surcharge.

Impact sur les performances :

Il est important de noter qu'aucun des les pointeurs ont une surcharge de temps lors du déréférencement, qui est généralement l'opération la plus fréquente pour les pointeurs.En général, la surcharge associée aux pointeurs intelligents est minime et ne devrait pas affecter de manière significative le code performance. Cependant, la création et la destruction continues de pointeurs intelligents peuvent introduire des goulots d'étranglement en termes de performances.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3