«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Имеют ли интеллектуальные указатели в C++ значительные затраты памяти и времени?

Имеют ли интеллектуальные указатели в C++ значительные затраты памяти и времени?

Опубликовано 13 ноября 2024 г.
Просматривать:892

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

Затраты памяти и времени на интеллектуальные указатели в C.

Интеллектуальные указатели, такие как std::shared_ptr и std::unique_ptr в C 11, обеспечить автоматическое управление памятью и упростить семантику владения. Однако некоторые разработчики могут задаться вопросом о потенциальном влиянии на производительность использования интеллектуальных указателей по сравнению с традиционными указателями. предусмотрен нетривиальный удалитель. Однако std::shared_ptr всегда требует дополнительной памяти для счетчика ссылок, хотя и относительно небольшого объема. конструкция, если необходимо скопировать предоставленное средство удаления или указатель инициализируется как null, а во время разрушения — для уничтожения принадлежащего объекта. уменьшить счетчик ссылок и потенциально уничтожить объект, а во время назначения увеличить счетчик ссылок. Кроме того, эти приращения/уменьшения являются атомарными для обеспечения безопасности потоков, что еще больше увеличивает накладные расходы.

Влияние на производительность:

Важно отметить, что ни один из умных указатели имеют временные издержки во время разыменования, которое обычно является наиболее частой операцией для указателей.

В целом, накладные расходы, связанные с интеллектуальными указателями, минимальны и не должны существенно влиять на производительность кода. Однако постоянное создание и уничтожение интеллектуальных указателей может привести к снижению производительности.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3