我希望有人可以澄清Julia垃圾收集器行为的一个方面,以及它如何与使用ccall
调用C函数分配的内存进行交互。
例如,我正在拨打以下电话:
setup::Ptr{Void} = ccall(("vDSP_DCT_CreateSetup", libacc), Ptr{Void},
(Ptr{Void}, UInt64, UInt64),
previous, length, dct_type)
此函数为DFT_Setup
对象分配内存并初始化内存(详细信息无关紧要)。该库还提供了在DFT_Setup
上调用的析构函数,以便在不再需要该对象时释放内存。
在Julia中调用析构函数是否必要?即,垃圾收集器在适当时处理释放DFT_Setup
,还是应该调用C解除分配器?