2016-09-03 5 views
0

Мы пытаемся сравнить 2 CSV-файла размером 3 ГБ. Мы получаем ошибку памяти кучи java при попытке прочитать эти файлы с помощью чтения карт CSV. Скажите, кто-нибудь, пожалуйста, помогите мне решить эту проблему.Сообщение Java из памяти при чтении большого файла CSV

+2

Введите код – Daniel

+0

Если вы читаете все содержимое CSV-файла в памяти сразу, то вы можете столкнуться с ошибками, если у вас недостаточно памяти для хранения содержимого. Вы пробовали читать, записывая свою программу, чтобы читать каждый файл по строке за раз и сравнивать их? или записать его для хранения 1 строки из файла и поиска всего другого файла для этого контента? – D3181

ответ

1

Одним из вариантов является расширение памяти для кучи. Первоначальный размер кучи по умолчанию составляет 128 мегабайт. У Java есть флаг, который вы можете передать, чтобы увеличить это значение.

Вы можете инициализировать размер кучи с помощью -Xms [size] или вы можете дать JVM максимальный размер кучи с -Xmx [size].

В вашем случае я бы использовал -Xms, чтобы придать программе больше памяти. Например, если вы хотите, размер кучи, чтобы начать на 512 МБ, то при запуске программы вы должны запускать:

java -Xms512m programName 
+0

Куча - это 1/4 основной памяти по умолчанию, если вы не используете 32-битную версию Windows. Если вам нужно обработать 3 ГБ файлов, вам, вероятно, потребуется 2-4 x этой кучи для загрузки сразу. –

 Смежные вопросы

  • Нет связанных вопросов^_^