Я написал небольшую программу для проверки времени цикла по двумерному массиву по строкам или столбцам, поскольку я помнил, что один способ был намного быстрее для больших наборов данных, но я не мог вспомнить, каким образом.Я столкнулся с интересной ошибкой, когда я запустил свою программу, хотя.
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at testing.ForLoopTest.main(ForLoopTest.java:10)
Теперь в моем тесте я использую int [10000] [10000], запущенный в eclipse с настройками кучи по умолчанию.Я знаю, что могу увеличить размер кучи, но моя интуиция говорит мне, что все должно работать нормально, и мне это не нужно.Это нормально?Есть ли в моем коде что-то глупое, чего я не вижу?
Вот мой код
public static void main(String[] args){
final int arrSize = 10000;
long start = 0;
long rowFirstTime = 0;
long colFirstTime = 0;
int[][] arr = new int[arrSize][arrSize];
start = System.currentTimeMillis();
for(int x = 0; x < arrSize; x++){
for(int y = 0; y < arrSize; y++){
arr[x][y] = -1;
}
}
rowFirstTime = System.currentTimeMillis() - start;
start = System.currentTimeMillis();
for(int y = 0; y < arrSize; y++){
for(int x = 0; x < arrSize; x++){
arr[x][y] = 0;
}
}
colFirstTime = System.currentTimeMillis() - start;
System.out.println("row time is " + rowFirstTime);
System.out.println("col time is " + colFirstTime);
}
Ошибка происходит при инициализации массива, она не попадает в циклы for.
Спасибо, zdevex