1

つるはしより:

場合によっては、オブジェクト ストレージに使用されない拡張機能にメモリを割り当てる必要がある場合があります。たとえば、ブルーム フィルター用の巨大なビットマップ、画像、または Ruby が直接使用しない一連の小さな構造がある場合などです。ガベージ コレクターを正しく使用するには、次のメモリ割り当てルーチンを使用する必要があります。これらのルーチンは、標準の malloc 関数よりも少し多くの作業を行います。たとえば、必要な量のメモリを割り当てることができないと ALLOC_N が判断した場合、ALLOC_N はガベージ コレクタを呼び出して、スペースの一部を再利用しようとします。できない場合、または要求されたメモリ量が無効な場合は、NoMemError が発生します。

しかし、特定の関数では、いつメモリを解放するかを正確に知っています。この場合、ALLOC_Nメモリを割り当てるために引き続き使用する必要がありますか?

自分でメモリを解放する正当なケースはありますか、それとも常に使用ALLOC_Nして気にしない方がよいですか?

4

2 に答える 2