Существуют ли какие-либо структуры памяти Java, которые будут автоматически выгружать данные на диск? - PullRequest
1 голос
/ 26 сентября 2011

По сути, я кеширую кучу файлов в памяти.Проблема в том, что если я получу слишком много файлов, кэшированных в памяти, мне не хватит памяти.

Существует ли какая-либо структура памяти Java, которая автоматически выводит часть себя на диск?

Например, я хотел бы установить ограничение в 2 МБ для размера файлов в памяти.После этого ограничения я бы хотел, чтобы некоторые файлы были записаны на диск.

Есть ли какая-либо библиотека, которая делает подобные вещи?

Грэй

Ответы [ 2 ]

0 голосов
/ 05 декабря 2011

EhCache - библиотека кэширования общего назначения для Java. Один из вариантов - иметь кеш с резервной копией на диске, который переполняется в файловой системе. Кажется, именно то, что вам нужно.

0 голосов
/ 30 ноября 2011

"файлы в памяти".Традиционно, в памяти данные хранятся в некоторой структуре данных, такой как HashMap или что-то еще, и называются «файлом» при записи на диск.Вы можете кодировать класс хранения данных, который делал это программно.Я не знаю ни одной библиотеки, которая бы сделала это.Это было бы довольно полезно.По сути, вы реализуете виртуальную память.

Эта ссылка может вам помочь:

http://docs.oracle.com/javase/7/docs/api/java/nio/channels/FileChannel.html

...