昨日投稿された質問へのフォローアップとして、Memory consumption of a pointer to vector of pointers、私はキータイプがあるboost ptr_mapのメモリ使用に関するもう一つの質問がありますクラスA(今のところintと仮定)とvalueは、ある種のポインタのベクトル(pointer to)になります。これはptr_mapです。私はSTLのマップのメモリ消費量は、一般的にクラスAのboost ptr_mapのキーとしてのメモリ消費と値Bのポインタのベクトル
(sizeof(A) + sizeof(B) + ELEMENT_OVERHEAD) * N + CONTAINER_OVERHEAD
缶要素はオーバーヘッド
と仮定sizeof(A) + sizeof(B)
に関連して、このような設計のためにもどのように大きな私の質問の懸念であることを質問、How can i estimate memory usage of std::map?で読んだことがありますA型とB型(ここではAはintとし、Bはintへのポインタのベクトルへのポインタです)、通常のSTLマップの場合でも何らかの助けになるでしょう。また、可能ならば、Aがもっと複雑な場合、物事がどのように変化するかを知りたいと思っています.Aの複雑さとともに要素のオーバーヘッドが増えると思いますか?要素のオーバーヘッドは、AとBのサイズの合計の何分の一に制限されていますか?私の懸念は、要素のオーバーヘッドが本当に限定されていない大きな部分である場合、マップを使用する全体のポイントはもはや魅力的ではないように見えるということです。
これらのオーバーヘッドは通常一定であり、キーと値とは無関係です。 –
ありがとう..しかし、どのような要素のオーバーヘッド(私はコンテナのオーバーヘッドについて心配していない)は、sizeof(int)と比較してどのような考えですか?これはNを掛けるので、Nが大きければ大事です。 –
サイズの大きいベクターで使用されているメモリと比較して小さい。 –