Java程序运行内存空间不足有哪些解决办法
现在正在编一Java程序,需要用到三个double类型数组。每个数组有元数1亿多个,三个数组共需内存2.3G左右。数组需要随机访问。
而在Windows下JVM内存最大就是1500M左右。显然这个问题很严重。
一个解决办法是把三个数组保存到硬盘上,但不知如何进行?且从硬盘上读取数据的策略需要优化才能使程序运行速度加快。
或者有什么其它的解决办法?
例如随机从每个数组中任选一个元素相加求和,程序应当如何写?
谢谢各位在此讨论。
源码样例如下:
public class memtest {
public double r[], aux[],score[];
int numNodes=105896555;
public void init() {
score = new double[ numNodes ];
r = new double[ numNodes ];
aux = new double[ numNodes ];
}
public static void main(String[] args) {
memtest m=new Memtest();
System.out.println("start...");
m.init();
System.out.println("finished.");
}
}