erlangc-NIF中的内存分配
一个人为什么要用erlangc-NIF中的内存分配,c,erlang,alloc,erlang-nif,C,Erlang,Alloc,Erlang Nif,一个人为什么要用 void *enif_alloc_resource(ErlNifResourceType* type, unsigned size) 相对于 void *enif_alloc(size_t size) 当尝试从Erlang C NIF分配内存时 参考并没有详细说明原因 enif\u alloc\u资源用于创建不再使用时由vm垃圾收集的资源。enif_alloc的工作原理与malloc类似,只是使用了特定于Erlang VM的实现,而不是OSs malloc。有关更多详细信息
void *enif_alloc_resource(ErlNifResourceType* type, unsigned size)
相对于
void *enif_alloc(size_t size)
当尝试从Erlang C NIF分配内存时
参考并没有详细说明原因
enif\u alloc\u资源用于创建不再使用时由vm垃圾收集的资源。enif_alloc的工作原理与malloc类似,只是使用了特定于Erlang VM的实现,而不是OSs malloc。有关更多详细信息,请查看ernifResourceType的文档以及使用它的函数 当使用enif_alloc时,GC的区别是什么?当我释放它时,它只是GC'd吗?当使用enif_alloc时,GC根本不涉及。如果您想要GC,您应该使用资源,如果您要自己管理内存的生命周期,请使用enif_alloc和enif_free。