Наше приложение представляет собой решение на основе gigaspace, которое в основном считывает из нескольких плоских файлов и сохраняет данные в объекте. Теперь плоские файлы в основном содержат некоторые детали отправки. Таким образом, у нас есть несколько файловЭффективные коллекции памяти в java
- Верфь Деталь
- Контейнер деталью
- Пересылка Детали
- т.д.
Теперь у нас есть Dockyard
как родительский объект, под которым можно много объектов отгрузки Детали. В настоящее время мы используем ArrayList
для хранения данных о доставке для почти 50 000 объектов док-станции. Текущий объем данных предполагает, что для каждого объекта Dockyard
нам нужно будет обслуживать около 1500 объектов детализации отправки, и в куче будет находиться почти 50-килограммовый объект верфи. Наша текущая куча составляет 8 ГБ.
Так что хотелось бы знать, является ли ArrayList лучшим способом для хранения такого количества объектов. Я искал другие API, а также trove
, HPPC
, но они в основном предлагают преимущества, когда дело доходит до примитивной коллекции. Наше будет коллекция объектов. Таким образом, кроме увеличения размера кучи. может ли кто-нибудь предложить другие лучшие альтернативы.
, когда размер данных такой большой, хранение данных в памяти приложения никогда не является хорошей идеей. – afzalex
Я согласен с этим, но мы не ожидали этой большой части данных изначально, поэтому сетка данных в памяти показала быстрое и хорошее решение и обратное отслеживание, изменение дизайна было бы довольно сложной задачей для нас, так как мы близки к тестированию UAT , –
Лучше всего что-то сделать очень быстро. Если вы не ожидали, что это много данных первоначально, как вы думаете, что будет через 6 месяцев. Ваша реализация просто не будет масштабироваться. – Andreas