Затраты памяти и времени на интеллектуальные указатели в C.
Интеллектуальные указатели, такие как std::shared_ptr и std::unique_ptr в C 11, обеспечить автоматическое управление памятью и упростить семантику владения. Однако некоторые разработчики могут задаться вопросом о потенциальном влиянии на производительность использования интеллектуальных указателей по сравнению с традиционными указателями. предусмотрен нетривиальный удалитель. Однако std::shared_ptr всегда требует дополнительной памяти для счетчика ссылок, хотя и относительно небольшого объема. конструкция, если необходимо скопировать предоставленное средство удаления или указатель инициализируется как null, а во время разрушения — для уничтожения принадлежащего объекта. уменьшить счетчик ссылок и потенциально уничтожить объект, а во время назначения увеличить счетчик ссылок. Кроме того, эти приращения/уменьшения являются атомарными для обеспечения безопасности потоков, что еще больше увеличивает накладные расходы.
Влияние на производительность:
Важно отметить, что ни один из умных указатели имеют временные издержки во время разыменования, которое обычно является наиболее частой операцией для указателей.
В целом, накладные расходы, связанные с интеллектуальными указателями, минимальны и не должны существенно влиять на производительность кода. Однако постоянное создание и уничтожение интеллектуальных указателей может привести к снижению производительности.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3