我意識到創建,分配,複製和銷燬std :: tr1 :: shared_ptr或boost :: shared_ptr(由於引用計數機制)有一個(有時是重要的)性能命中。一旦構造,訪問由shared_ptr包裝的指針是否沒有性能損失?解除引用std :: tr1:shared_ptr與解引用裸指針的任何命中?
換句話說:給予
std::tr1::shared_ptr<myClass> SharedA(new myClass);
myClass *NakedA = new myClass;
確實
SharedA->someClassMember
具有相同的開銷
NakedA->someClassMember
?
我不知道,當你測量它會發生什麼? – 2011-05-18 18:37:20
有什麼選擇?即使需要,也不使用shared_ptr? – 2011-05-18 18:41:08
@Doug T.-在簡單的測試用例中,似乎沒有什麼區別,但是在我正在處理的大代碼中,我的分析器在訪問指針時顯示出一些開銷(儘管它看起來應該內聯,因此沒有什麼區別) – MarkD 2011-05-18 18:45:49