アプリケーション内に各タイプのオブジェクトがいくつあるかについて、割り当てプロファイリングを実行しました。私は boost::shared_ptr を広範囲に使用しています。
多数の sp_counted_impl_p オブジェクトが割り当てられており、それぞれが 16 バイトを占めていることがわかりました。shared_ptr ごとに期待できる sp_counted_impl_p オブジェクトの数は? 誰かがアイデアを持っていますか?
アプリケーション内に各タイプのオブジェクトがいくつあるかについて、割り当てプロファイリングを実行しました。私は boost::shared_ptr を広範囲に使用しています。
多数の sp_counted_impl_p オブジェクトが割り当てられており、それぞれが 16 バイトを占めていることがわかりました。shared_ptr ごとに期待できる sp_counted_impl_p オブジェクトの数は? 誰かがアイデアを持っていますか?
実装で確認できることは、shared_ptr ごとに 1 つだけです。ただし、このカウントされたクラスを直接使用するか、shared_ptr 自体を使用する可能性がある、boost によって内部的に使用されるオブジェクトが他にもあることに注意してください。また、boost.serialization フレームワークを使用する場合も、このクラス/メカニズムに基づいています。とにかく、「多数」とは何人ですか?
で指すオブジェクトごとに 1 つ存在する必要がありますshared_ptr
。それ以上ある場合は、shared_ptr
適切に使用していない可能性があり、ダブルフリー エラーなどのトラブルが発生している可能性があります。