大きな固定サイズのバッファを1つ使用する汎用のmalloc実装が必要です。 "Zero-malloc memory allocator" SQLiteに似たものがあります。そのような実装について知っていますか?組み込み用途に使用できる軽量でポータブルでなければなりません。固定サイズバッファからのmalloc実装
ありがとうございます。
大きな固定サイズのバッファを1つ使用する汎用のmalloc実装が必要です。 "Zero-malloc memory allocator" SQLiteに似たものがあります。そのような実装について知っていますか?組み込み用途に使用できる軽量でポータブルでなければなりません。固定サイズバッファからのmalloc実装
ありがとうございます。
つの提案:
リンク先の投稿者のコメント者の一部に同意します。この種のアロケータは、組み込みシステムの堅牢性の問題(壊滅的な断片化)を解決するものではありません。 OPは要件をよりよく述べ、彼が求めたものが本当に問題を解決できるかどうかを検討する必要があります。 –
@R:断片化の欠如はそのアロケータの目的ではなく、むしろ組み込みアプリケーションに必要なヒープメモリの総量を信頼性のある方法で計算することでした。 –
ありがとうございます。私はテスト目的のために簡単な実装を探していました。 reallocが実装されていないことがわかります。私は使用しているreallocsを持っている大きなコードベースを使用することを計画していた。私はあなたと他の人を示唆して、SQLiteの実装を移植するのが最善だと思います。 – Manish
SQLiteのソースコードは無料で入手できます。特定の実装が好きな人は、それを使用しないでください。
最新のmalloc
の実装は、OSから取得した大きな容量のメモリを彫刻して動作します。ブロックがなくなると、malloc
はOSに新しい大きなブロックを要求します。
既存のmalloc
実装(たとえばglibc)に独自の実装を組み込むことができ、OSからブロックを取得する代わりに、1つの静的バッファを使用します。それがなくなると、OSが新しいブロックを提供できないときと同じように、malloc
が失敗し始めます。
mallocに問題がありますか? – mathk
@Mathk:メモリ断片化(またはそうでない)。どのくらいの量のメモリカーネルがプロセスに割り当てるか手前で知りたい。 – Manish