私は現在、ゲームのオブジェクト構造を設計していますが、私の場合、最も自然な構成はツリーになりました。スマートポインタの大ファンである私は、をshared_ptr
独占的に使用しています。ただし、この場合、ツリー内の子はその親にアクセスする必要があります(たとえば、マップ上の存在はマップデータにアクセスできる必要があります-親のデータをエルゴします。
もちろん、所有する方向は、マップがその存在を所有することであるため、それらへの共有ポインターを保持します。ただし、存在内からマップデータにアクセスするには、親へのポインターが必要です。スマートポインターの方法は、参照を使用することweak_ptr
です。
ただし、aのロックweak_ptr
はコストのかかる操作であると読んだことがありますが、これはもう当てはまらないかもしれませんが、weak_ptr
が頻繁にロックされることを考えると、この設計のパフォーマンスが低下するのではないかと心配しています。
したがって、質問:
weak_ptrをロックするとパフォーマンスが低下しますか?それはどれほど重要ですか?