I've been considering using shared pointers (e.g., Boost Smart Pointers) but want to know in what situations they would incur performance penalties. I need to write some programs where execution speed is very important. Can someone enlighten me on this?