我正在编写一个适用于大型数据集和其他相关计算的机器学习程序.由于数据集可能非常大,因此某些计算会产生非常大的矩阵(例如29,000 x 29,000 Array {Float64,2}),并且它们需要大量存储(RAM).在程序的后面,不再需要一些元素(如初始数据集),但它们仍在浪费内存空间.
有没有办法在某个时刻"释放"变量?或者,有没有办法分享一些硬盘部分,如交换空间?
只是为了将其包装起来...典型的方法是用不需要很少内存的对象覆盖不必要地占用内存的对象.摘自FAQ(如上所述):
例如,如果A是您不再需要的千兆字节大小的数组,则可以释放A = 0的内存.内存将在下次运行垃圾收集器时释放; 你可以用gc()来强制这种情况发生.
如果您希望创建一个新工作区(即清除所有变量),则可以使用
workspace()