2

假设我的代码如下:

int value=-1;
for(int i=0;i<10;i++)
{
f(value);
}

wheref是一个复杂的函数,它调用其他类..等。

我这里有一个性能问题,它使 IDE (NetBeans) 冻结,几分钟后引发堆大小异常。实际上它甚至会冻结两次迭代(i<2)

但是,当我顺序执行

 f(value);

我马上就得到了答案,没有任何例外。

我怎样才能克服这样的问题?是否有任何调整/另一种方式运行f(value)多次?

4

2 回答 2

1

我认为,您需要查看您的代码和函数的相关类f(value);。正如您所说,一次调用它是正确的,但是对于后续调用,您将面临堆内存异常。使不需要的对象有资格进行垃圾收集,避免字符串连接,还有一些利用可用内存的技巧。

于 2013-11-13T10:23:18.833 回答
1

您似乎想function f用相同的输入执行十次逻辑。
所以最好在函数逻辑中执行它而不是调用函数 f 十次。它会reduce the cost of function call ten times

(不确定它是否能达到你的目的。试试吧。)

于 2013-11-13T09:29:59.457 回答