У меня проблема с памятью, причину которой я полностью понимаю, но не знаю, как ее исправить. Я попытался использовать тег -Xmx2g и увеличить размер кучи, но, похоже, существует скрытый максимум. (если я использовал -Xmx512m, у меня одновременно закончилось место).
Предположим, у меня есть 2 объекта, область и пользователь. Объект My Area содержит список пользователей ArrayList:
public class Area {
int numUsers;
ArrayList<User> userList;
}
Мой класс User содержит ArrayList друзей:
public class User {
int userID;
int numFriends;
ArrayList<User> friends;
}
Просто используя одну область с 1 миллионом пользователей и в среднем 200 друзьями на пользователя, я исчерпал место в куче после того, как было создано около 680 000 пользователей. Очевидно, что если я уменьшу среднее количество друзей/пользователей до значения, близкого к 100, я смогу хранить все эти объекты в куче.
Что, если я хочу смоделировать 2 миллиона пользователей в области? Или сотни областей?
Является ли база данных единственным возможным способом моделирования с использованием этой информации при таком большом количестве данных?