Maison > développement back-end > C++ > le corps du texte

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

Susan Sarandon
Libérer: 2024-10-25 02:48:02
original
135 Les gens l'ont consulté

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.

Surcharge de mémoire :

std::unique_ptr n'impose une surcharge de mémoire que si 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 l'objet possédé.

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 les performances du code. Cependant, la création et la destruction continues de pointeurs intelligents peuvent introduire des goulots d'étranglement en termes de performances.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!