2009-07-28 2 views
2

В настоящее время я разрабатываю систему, в которой пользователь будет иметь большие массивы (с использованием android). Однако JVM-память подвержена риску исчерпания, поэтому, чтобы предотвратить это, я думал о создании временной базы данных и хранении данных там. Однако одна из проблем, которая приходит ко мне, - это SDcard, ограниченная чтением и записью. Еще одна проблема, которая приходит на ум, - накладные расходы на такую ​​операцию. Может ли кто-нибудь прояснить мои проблемы, а также предложить, возможно, хорошую альтернативу обработке больших массивов (в конце эти массивы будут загружены на сайт, написав файл csv и загрузив его).Кэширование больших массивов SQLite - Java/Android

Спасибо, Фейсал

ответ

2

Пара мыслей:

  1. Вы можете хранить их с помощью СУБД, как Derby, которая встроена во многие версии Java
  2. Вы можете хранить их в сжатый выходной поток, который записывает в байты - это будет особенно хорошо работать, если данные легко сжимаются, то есть регулярно повторяются числа, текст и т. д.
  3. Вы можете загружать части массивов за раз, то есть, nerate их, начните загружать фрагменты данных до серверов в кусках
+0

ну с первыми двумя вариантами, зачем использовать дерби вместо Sqlite? и второй вариант, не могли бы все еще использовать SD-карты для чтения и записи? или у меня есть неправильное представление о том, как работает sdcard read write? –

+0

с третьим вариантом, пользователь не может постоянно подключаться к Интернету. –

+0

со вторым вариантом - вы можете написать массив байтов, который остается в памяти, используя bytearrayoutputstream (или что-то подобное - точное имя класса ускользает от меня этим утром) – aperkins

Смежные вопросы