core.stdc.stdlib.malloc
和core.memory.GC.malloc
之间有什么区别?当程序在禁用GC的情况下运行时,我应该使用以下哪一个?
core.stdc.stdlib.malloc
是普通C的malloc,因此内存不会注册到GC
。这意味着它将不会被扫描,您必须使用C的free
来释放此内存。CCD_ 6由CCD_。你可以同时使用它们。但是,如果使用GC.disable
,即使core.memory.GC.malloc
分配的内存也不会被释放,直到您启用GC或调用GC.collect
。
Btw。如果你想更好地控制内存分配,你应该看看https://dlang.org/phobos/std_experimental_allocator.html