C++ でのメモリ管理に役立つ新しい機能を追加するために、独自の動的メモリ管理システムを実装したいと考えています。
Windows (XP) と Linux (Ubuntu) を使用しています。「malloc」や「free」などの機能を実装するには何が必要ですか? 最低レベルのシステムコールを使用する必要があると思います。
Windows の場合、GetProcessHeap、HeapAlloc、HeapCreate、HeapDestroy、および HeapFree という関数を見つけました。
Linux の場合、ヒープ管理用のシステム コールは見つかりませんでした。Linux では、malloc と free はシステム コールですよね。
ありがとう
編集:
C++ はガベージ コレクターを提供しておらず、ガベージ コレクターは低速です。一部の割り当ては簡単に解放できますが、ガベージ コレクターが必要な割り当てもあります。
これらの関数を実装し、新しい機能を追加したいと考えています。
* free() が呼び出されるたびに、ポインターがヒープに属しているかどうかを確認します。
※ごみの回収にご協力ください。割り当てられたブロックに関する情報を保存する必要があります。
* 複数のヒープを使用します (Windows では HeapCreate/HeapDestroy)。割り当てられたブロックを含むヒープ全体をすばやく削除できます。