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