What's the performance penalty of weak_ptr?
Posted
by Kornel Kisielewicz
on Stack Overflow
See other posts from Stack Overflow
or by Kornel Kisielewicz
Published on 2010-04-30T22:40:08Z
Indexed on
2010/04/30
22:47 UTC
Read the original article
Hit count: 264
I'm currently designing a object structure for a game, and the most natural organization in my case became a tree. Being a great fan of smart pointers I use shared_ptr
's exclusively. However, in this case, the children in the tree will need access to it's parent (example -- beings on map need to be able to access map data -- ergo the data of their parents.
The direction of owning is of course that a map owns it's beings, so holds shared pointers to them. To access the map data from within a being we however need a pointer to the parent -- the smart pointer way is to use a reference, ergo a weak_ptr
.
However, I once read that locking a weak_ptr
is a expensive operation -- maybe that's not true anymore -- but considering that the weak_ptr
will be locked very often, I'm concerned that this design is doomed with poor performance.
Hence the question:
What is the performance penalty of locking a weak_ptr? How significant is it?
© Stack Overflow or respective owner