Максимальный размер матрицы без получения ошибки OutOfMemory? - PullRequest
0 голосов
/ 29 декабря 2010

Конечно, я мог бы выяснить это методом проб и ошибок, но мне также хотелось бы знать, меняется ли это число и как (производительность компьютера, другие структуры данных, тип компилятора и т. Д.).Спасибо!

Ответы [ 3 ]

4 голосов
/ 29 декабря 2010

Вам потребуется увеличить размер кучи JVM, если вам не хватает памяти, прочитайте это .Вы ничего не можете сделать, если вашей матрице требуется много памяти (если нет утечек памяти), кроме увеличения размера кучи.

Вы можете изменить размер своей матрицы так, как вам хочется (но не больше).чем максимальное значение целого числа, которое используется в качестве индекса), если у вас достаточно памяти.Целое число составляет 32 бита, поэтому у вас есть максимальный теоретический предел.

1 голос
/ 29 декабря 2010

Максимальный размер массива ограничен 32-битным значением со знаком. то есть 2 ^ 31-1 или около 2 миллиардов, большинство матриц реализованы в виде двумерных массивов, поэтому максимальный размер составляет 2 миллиарда * 2 миллиарда. Вы можете использовать float или double, но если у вас будет матрица, которая будет больше, ваша ошибка округления будет огромной. ~ 2 ^ 62 бита, что больше точности двойного, поэтому вам придется использовать BigDecimal в любом случае. Скажем, каждая ячейка занимает около 128 (2 ^ 7) байтов памяти, вам нужно всего 2 ^ 69 байтов или 512 Exa-байтов (32-кратный теоретический предел памяти, который может обрабатывать 64-битный процессор)

0 голосов
/ 01 января 2011

это также зависит от памяти вашей машины и того, сколько памяти вы выделите для процесса с помощью -Xmx.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...