Я пытаюсь прочитать файл (вкладка или файл csv) в java с примерно 3-мя строками; также добавили память виртуальной машины в -Xmx6g. Код отлично работает с 400K строк для файла с разделителями вкладок и немного меньше для файла csv. Есть много связанных LinkedHashMaps и Vectors, которые я пытаюсь использовать System.gc() после каждых нескольких сотен строк, чтобы освободить значения памяти и мусора. Тем не менее, мой код дает следующую ошибку после 400K строк.Размер кучи Java и OutofMemory
Исключение в потоке «основного» java.lang.OutOfMemoryError: Java куча пространства
at java.util.Vector.<init>(Vector.java:111)
at java.util.Vector.<init>(Vector.java:124)
at java.util.Vector.<init>(Vector.java:133)
at cleaning.Capture.main(Capture.java:110)
'System.gc()' вызовы - это потраченное впустую действие. Вы можете свободно их удалить. –
Пришло время использовать базу данных? –
Возможно, вы захотите пересмотреть свой подход для обработки этого объема данных, не пытаясь загрузить все в память. Вы можете попробовать обработать его кусочком (вплоть до строки). - То, что вы реализовали, похоже, все, кроме масштабируемого. – A4L