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