2

なぜ使用するのか

void *enif_alloc_resource(ErlNifResourceType* type, unsigned size)

とは対照的に

void *enif_alloc(size_t size)

Erlang C NIF からメモリを割り当てようとするとき?

参考文献では、その理由についてあまり特定されていません。

http://www.erlang.org/doc/man/erl_nif.html#enif_alloc

4

1 に答える 1

4

enif_alloc_resource は、使用されなくなったときに vm によってガベージ コレクションされるリソースを作成するために使用されます。enif_alloc は malloc と同じように機能しますが、OS の malloc ではなく、Erlang VM 固有の実装を使用するだけです。詳細については、ErlNifResourceType とそれを使用する関数のドキュメントを参照してください。

于 2013-01-20T15:20:44.197 に答える