执行大量浮点运算时进行清理

时间:2016-07-28 23:55:03

标签: scala

我有一个执行大量操作的算法。它导致

java.lang.OutOfMemoryError: GC overhead limit exceeded

由于我无法重复使用先前操作中涉及的双精度数,因此无论为JVM分配多少内存,它最终都会被填满。我该如何避免这个问题? GC配置?其他一些JVM选项?

编辑:一些相关的代码。

所以,这是我试图执行的内容 -

def calculateModel(d: Array[structure.Vector], y: structure.Vector): Model = {
    val H = new Matrix(d)
    val w = H.transpose.multiply(H).inverse.multiply(H.transpose).multiply(y)
    return new Model(w, null, null)
}

Vector和Matrix是包含Array [Double]的类,并且对向量和矩阵有各自的操作。

由于我从IDE中的main()方法调用此方法,我认为发生的事情是main()中的本地作用域没有任何对象进入堆。我们非常欢迎更好的解释:)

0 个答案:

没有答案