シリアル化システムの場合、データを書き込むためのバッファーを割り当てる必要があります。必要なサイズは事前にわからないため、基本的なパターンはmalloc
N
バイトでrealloc
、さらに必要な場合に使用します。のサイズはN
、ほとんどのオブジェクトを収容するのに十分な大きさであるため、再割り当てはほとんど行われません。
malloc
これにより、他よりも簡単に満たすことができる最適な初期バイト量がおそらくあると思いました。に近い場所だと思いますが、ハウスキーピングのためのスペースが必要かpagesize
どうかは必ずしも正確ではありません。malloc
さて、これは役に立たない最適化であると確信しています。それが本当に重要な場合は、プールを使用できますが、興味があります。start として割り当てるのが最も簡単なバイトのチャンクを教えてくれると考えるプログラマーは私が初めてではありません。これを判別する方法はありますか?
最新の GCC/G++ および/または Linux に特に適用されるこれに対する回答はすべて受け入れられます。