OutOfMemoryError: пространство кучи Java, полученное при создании JTable с 41000 строками - PullRequest
0 голосов
/ 04 июля 2018

Я пытаюсь создать JTable, показывающее 41000 строк данных, у меня был тот же код, который отлично работал для другой JTable, которую мне нужно было создать только с 4457 строками, поэтому моя проблема не связана с данными. Выполнение моей программы занимает 25 минут, чтобы вычислить все значения, которые должны отображаться в моем пользовательском интерфейсе. Когда выполнение программы заканчивается, я получаю следующее сообщение об ошибке:

"Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Vector.<init>(Unknown Source)
at java.util.Vector.<init>(Unknown Source)
at javax.swing.table.DefaultTableModel.convertToVector(Unknown Source)
at javax.swing.table.DefaultTableModel.convertToVector(Unknown Source)
at javax.swing.table.DefaultTableModel.setDataVector(Unknown Source)
at javax.swing.table.DefaultTableModel.<init>(Unknown Source)"

Разве невозможно создать JTable с 41000 строками? Это слишком большой для создания JTable? Я не думаю, что что-то не так с моей программой, так как у меня был тот же код, который отлично работал для другой таблицы, состоящей из 4457 строк.

1 Ответ

0 голосов
/ 04 июля 2018

4457! = 41000 . Очевидно, что это зависит от вашей стороны объекта.

Разве невозможно создать JTable с 41000 строками?

Все зависит от объекта, который вы визуализируете. Это отличается объект только с 1 полем, что объект, который больше. Как сказано в комментариях, это зависит от вашей конфигурации JVM, добавление дополнительной памяти может быть решением -Xmx2048m

Это слишком много строк для создания JTable?

Тот же ответ. Это зависит от типа объектов, которые вы используете. Если объект слишком велик, лучше использовать разбиение на страницы или лучше подходить для этого.

...