呼ばれる中央集約的なプールから割り当てされます。そのアイテムがもはや使用されなくなると、占有されたメモリは何か別のもののために確保することができます。以前は一般的にヒープメモリブロックを割り当てて解放することを、適切な関数コールを通じて明示的に行うことはプログラマ自身の責任でした。エンジンのようなランタイムシステムがメモリ管理を自動化しています。自動メモリ管理では、明示的に割り当て/リリースするよりコーディングの労力が大幅に削減され、かつメモリリーク(メモリが割り当てされたけど後続でリリースされない状況)の潜在的な可能性を著しく下げます。関数がコールされると、引数の値はその特定のコールのために予約されたメモリエリアにコピーされます。数バイトを占有するデータ型は速やかに簡単にコピーができます。オブジェクト、文字列、配列がそれよりも大きいことは良くあることであり、もしこれらのデータ型が定期的にコピーされることは非常に非効率的です。幸いにこれは必要ありません。値がロケーションを覚えるために存在しています。その先は、ポインタのみがパラメーター渡しの際に必要となります。ランタイムシステムがポインタにより識別されるアイテムを見つけられるかぎり、データのひとつのコピーは何回でも使用することができます。パラメーター渡しのときに直接格納されてコピーされる型は値型と呼ばれます。__Vector3__)も含みます。参照型の例にはオブジェクト、文字列、および配列が含まれます。メモリ割り当ておよびガベージコレクションメモリマネージャがヒープの中で未使用であると認識している領域をトラッキングします。新しいメモリブロックが要求されるとき(例えばオブジェクトがインスタンス化された)、マネージャはブロックを割り当てる未使用領域を選択し、未使用と認識している割り当てされたメモリを取り除きます。後続のリクエストは、要求されたブロックサイズを割り当てるために十分な空き領域がなくなるまで、同じ方法でハンドリングされます。この時点ではピープに割り当てられたすべてのメモリが使用されていることはきわめて稀です。ヒープ上の参照されるアイテムは、まだそれを参照できる参照変数が存在するかぎりでしか、アクセスできません。メモリを参照するすべてのメモリブロックがなくなったとき(すなわち参照変数が再度割り当てされたか、スコープ外となったローカル変数である場合)は、占有していたメモリは安全に再割り当てできます。してマーキングします。検索の最後に活動中のブロックの間の空間はメモリマネージャにより空いていると判断され、後続の割り当てで使用することができます。