Мне нужно предварительно обработать данные из OpenStreetMap. Первым шагом является сохранение группы узлов (более 200 миллионов) из файла unprocessed.pbf
(Европа, ~ 21 ГБ). Поэтому я использую HashMap. После импорта данных на карту моя программа проверяет каждый узел на соответствие определенным условиям. Если нет, то узел удаляется с карты. После этого каждый оставшийся узел на карте записывается в новый файл processed.pbf
.
Проблема в том, что эта программа использует более 100 ГБ ОЗУ. Я хочу оптимизировать использование памяти.
Я прочитал, что должен настроить начальную емкость и коэффициент загрузки HashMap, если используется много записей. Теперь я спрашиваю себя, какое значение является лучшим для этих двух параметров.
Я также видел, что загрузка памяти при использовании JVM Oracle-JDK (1.8) увеличивается медленнее, чем при использовании OpenJDK JVM (1.8),Есть ли какие-то настройки, которые я могу использовать для OpenJDK JVM, чтобы минимизировать использование памяти?
Спасибо за вашу помощь.