|
Android
|
|
Работа с большими объемами данных03.09.2015, 20:08. Показов 1932. Ответов 17
Метки нет (Все метки)
С вебсервиса скачиваеться JSON с 16ю МБ данными.
Далее ее в StringBuilder, но программа валиться с ошибкой OutOfMemory (Ну в принципе это понятно из-за чего). Потом эти 16 Мб данных нужно использовать в программе...(В памяти программы в моем случае должно быть 2 таких почти идентичных JSON материала.. = 16*2 мб - возможно и не только...) Какие пути решения можете посоветовать? p.s. надеюсь смог объяснить суть...
0
|
|
| 03.09.2015, 20:08 | |
|
Ответы с готовыми решениями:
17
Работа с большими изображениями Работа с большими данными Выполнение логических операций с большими объемами данных. |
|
Android
|
|
| 03.09.2015, 21:46 [ТС] | |
|
YuraAAA, YuraAAA,
StringBuilder использовался ранее и я не стал менять... В StringBuilder добавляется пришедший JSON и далее сохраняется в String. Потом уже работа с этой строкой... Проблема в StringBuilder ? (честно говоря не пробовал заменить StringBuilder на что то другое)
0
|
|
|
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
|
|
| 04.09.2015, 07:59 | |
|
1
|
|
|
Android
|
||||||
| 04.09.2015, 15:11 [ТС] | ||||||
|
Если так считывать файл, возможно ли как то по индексу вытаскивать подстроку?
В файле огроменная одна строка. Нужно в нужный момент вытаскивать определенный участок по позиции начало и конца и ..
0
|
||||||
|
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
|
|
| 04.09.2015, 17:38 | |
|
Напишите класс для хранения ваших строк. В самом классе разбивайте строки по 2мб. Ну естественно в классе нужно реализовать поиск, по отдельным частям и прочее.
1
|
|
|
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
|
|
| 04.09.2015, 19:52 | |
|
ILNAR_93, так, а что не выходит-то по примеру
http://javarevisited.blogspot.... ckson.html
1
|
|
|
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
|
||
| 04.09.2015, 22:35 | ||
|
Допустим читаем с 0 по 512 байт далее с 512 байт по 1024. В конце то концов разберитесь со стримами и буферами.
1
|
||
|
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
|
|
| 17.09.2015, 10:23 | |
|
1
|
|
|
Android
|
||||||
| 17.09.2015, 11:25 [ТС] | ||||||
|
Armagedo,
Все нормал) Спасибо))) Добавлено через 15 минут Вот так реализовал чтение из файла с определенной позиции, определенное число символов Нормален ли подход?)) Кликните здесь для просмотра всего текста
0
|
||||||
|
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
|
|
| 17.09.2015, 12:48 | |
|
ILNAR_93, решал такую задачу при помощи BufferedReader и JsonReader (т.е. по методу SAX, а не DOM): Парсинг большого объема JSON данных.
С посимвольным чтением вы чего-то загнули, это медленно. Недавно в одном Java-вопросе прочитал, что и чтение при помощи стандартного while ((line = reader.readLine()) != -null) тоже неоптимально, т.к. сначала происходит разбиение на строки, а затем - обратное соединение строк.
1
|
|
|
Android
|
|||
| 17.09.2015, 13:18 [ТС] | |||
|
CoolMind, Спасибо за ответ!
т.к. в файле который считываю есть поле String KEY с размером 16 мб. readLine считывает сразу все 16 мб в line и ошибка нехватки памяти... а так получаю что нужно и утечек памяти тоже не наблюдаю...
0
|
|||
|
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
|
||||||
| 17.09.2015, 16:04 | ||||||
Сообщение было отмечено ILNAR_93 как решение
Решение
ILNAR_93, я не прочитал все сообщения и подумал, что речь идёт про JSON. Да, вы правы, это вторая причина, почему в программах не рекомендуется использовать while ((line = reader.readLine()) != null), однако авторы продолжают везде пихать в своих статьях этот код.
Вам правильно советуют разобраться с потоками. StringBuilder не подойдёт, надо возвращать поток и читать прямо по нему. Для работы с POST-запросом я использовал код отсюда и переделал, получилось примерно так: Кликните здесь для просмотра всего текста
Правда, здесь я использую StringBuilder и возвращаю строку, но вы можете его не использовать. Привёл пример, как можно читать кусочками по 1024 байта.
1
|
||||||
|
Android
|
|
| 17.09.2015, 16:59 [ТС] | |
|
CoolMind, Спасибо за код и совет)
Просто мне полученный String из файла не сразу весь нужен... А по ходу использования приложения.. Он куками будет загружаться.. p.s. таких файлов будет несколько.. и в определенное время выбирается определенный файл..) ЕЩЕ раз спасибо за уделенное время)
0
|
|
|
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
|
|
| 17.09.2015, 18:54 | |
|
ILNAR_93, пожалуйста! Рад слышать!
0
|
|
| 17.09.2015, 18:54 | |
|
Помогаю со студенческими работами здесь
18
Есть ли в Oracle механизмы работы с очень большими объемами данных ? Какое ограничение в C#.NET на размер массивов? Или что посоветуете для работы с большими объемами данных? Видеокарта для работы с большими объемами графики Работа с большими массивами данных в текстовом файле Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|