Хранение большого массива int частично в базе данных, чтобы уменьшить память в Java - PullRequest
0 голосов
/ 24 сентября 2010

У меня есть класс, в котором есть члены int [].Массивы становятся очень большими, размером около 56 МБ (массивы расширяются с реализацией, аналогичной реализации в массиве)Теперь я хочу частично сохранить массив в базе данных, чтобы улучшить память.У меня есть база данных оракула в моем распоряжении.Я также хотел бы кэшировать более используемые индексы.Мне интересно, существует ли API для этой цели.В противном случае, пожалуйста, предложите подход к реализации.

Ответы [ 3 ]

1 голос
/ 24 сентября 2010

Почему бы вам не сериализовать объект массива.Для каждого размера массива 2 м класс сериализуется и сохраняется в файле. Наконец, десериализуйте классы и объедините массив.

0 голосов
/ 25 сентября 2010

56M не очень большой, если вы не разрабатываете для мобильного устройства.Стоимость 1 Гб на сервере / рабочей станции составляет около 100 долларов, поэтому 56 МБ стоит около 6 долларов.Если у вас много ГБ, возможно, стоит сделать это.

Если вам нужен расширяемый int [], я предлагаю вам взглянуть на TIntArrayList , который представляет собой коллекцию, похожую на ArrayList и использующую int [].

Кстати: данные RDBMS будут использовать гораздо больше памяти, чем вы собираетесь сохранить, и, вероятно, в 10 или более раз медленнее, в зависимости от того, что вы делаете с массивом.

0 голосов
/ 24 сентября 2010

Я бы посмотрел на BerkeleyDB , а не на реляционную БД.Это позаботится о записи на диск и кешировании.

Не уверен, имеет ли смысл хранить int непосредственно в виде значений или в виде полос - я бы начал с первого и затем увиделкак выглядела производительность, прежде чем усложнять дело с чередованием.

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