core.stdc.stdlib.malloc
和之间有什么区别core.memory.GC.malloc
?当程序在禁用GC的情况下运行时,应使用以下哪项?
core.stdc.stdlib.malloc
是普通C的malloc,因此未将内存注册到GC
。这意味着将不会对其进行扫描,您必须使用Cfree
释放此内存。core.memory.GC.malloc
被注册GC
,将被扫描。您可以同时使用它们。但是,如果使用GC.disable
偶数分配的内存,则core.memory.GC.malloc
在启用GC或调用之前不会释放内存GC.collect
。
顺便提一句。如果要更好地控制内存分配,则应查看https://dlang.org/phobos/std_experimental_allocator.html
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句