Коллекция Java, какие страницы на диск, когда он заполняется? - PullRequest
9 голосов
/ 05 мая 2010

Коллега упомянул, что он слышал об облегченной коллекции, которая автоматически распаковывалась на диск, когда ее содержимое переполнялось - но он не мог вспомнить название. Я думаю, это выглядит примерно так:

PagingCollection<Serializable> pagingCollection = new PagingArrayList<>();
pagingCollection.setMaxSizeInMemory(500);
for (int x = 0; x < 1000; x++) { pagingcollection.add("x="+x); }

Что бы затем отправить x = 0 до x = 500 на диск. Ключ сможет перебирать его, не загружая все это в память ..

Это для толстого клиента с небольшим объемом памяти.

Кто-нибудь знает об этом (или что-то подобное)?

Ответы [ 2 ]

7 голосов
/ 23 февраля 2014

MapDB ( mapdb.org ) - это библиотека, которая поддерживает дисковые коллекции: наборы, очереди и карты.

Вы можете сами выбрать, когда сохранять его на диске или просто сохранять при каждом обновлении.

Он также поддерживает кэширование, поэтому все ваши элементы будут на диске, но некоторые будут кэшироваться в памяти.

7 голосов
/ 05 мая 2010

Ну, единственные инструменты, которые я знаю, обладающие такими функциями, - это системы распространенности: prevayler и space4j . Хотя их интерфейс на первый взгляд покажется вам странным, он довольно прост в использовании и предлагает удобный набор функций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...