特に最近の Visual Studio C++ コンパイラを使用した Windows 上の C++ について考えると、ヒープの実装について疑問に思っています。
リリース コンパイラを使用していて、メモリの断片化やパッキングの問題に関心がないと仮定すると、ヒープにメモリを割り当てることに関連するメモリ オーバーヘッドはありますか? もしそうなら、これは割り当てごとにおよそ何バイトになるでしょうか? 64-bit
よりもコードが大きくなります32-bit
か?
最新のヒープ実装についてはよくわかりませんが、割り当てごとにマーカーがヒープに書き込まれるかどうか、または何らかの種類のテーブル (ファイル割り当てテーブルなど) が維持されるかどうか疑問に思っています。
関連するポイント (主に「マップ」などの標準ライブラリ機能について考えているため) では、Microsoft 標準ライブラリの実装は、ヒープの使用を最適化するために (ツリー ノードなどのために) 独自のアロケーターを使用しますか?