Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 14.01.2015
Сообщений: 4

Хранение большого количества бинарных данных

14.01.2015, 21:42. Показов 2303. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Возник вопрос связаный с хранением данных:
Мне нужно сохранять массивы бинарных данных (каждый массив - 4096 элементов по 1 байту)
Если просто записывать каждый массив в файл бинарно, то уже при 32 тыс таких массивов получается 100+ Мб, а в будущем таких массивов должно быть 100+ млн. а это уже ~300+ Гб.
Отсюда вопрос: есть ли способ хранить данные более эффективно? Важен так же быстрый доступ к массивам (250 массивов в секунду).
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.01.2015, 21:42
Ответы с готовыми решениями:

Хранение большого количества однотипных данных
Добрый день. Подскажите, каким образом хранить данные для программы? Например, у меня имеется 1000 - 300 000 строковых данных, которые...

Хранение большого (15000) количества строк в строковом массиве
Здравствуйте! Мне нужно создать генератор слов. Я решил пойти путем словаря + генератор псевдослучайных чисел. Файл сделал вложением,...

Хранение большого количества данных (5 миллиардов пар чисел)
Всем привет! У меня возникла следующая проблема. Необходимо хранить в программе последовательность примерно из 5 миллиардов пар чисел,...

8
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
14.01.2015, 21:54
есть два с половиной места хранения данных: память, диски и сеть (но там тоже будет память и диски). можно их сжимать или дедуплицировать. хз на сколько это дело сожмется но лагов при чтении и сохранении добавит. 300 гб влезут в ssd и это будет пожалуй самое быстрое решение. файловую систему еще можно подходящую подобрать. диск форматнуть с подходящим размером кластера.
ну и базы данных под хранение наверно лучше подойдут.
1
0 / 0 / 0
Регистрация: 14.01.2015
Сообщений: 4
14.01.2015, 21:58  [ТС]
DU2, То есть просто бинарная запись в файл, по вашему?
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
14.01.2015, 22:01
не понял вопроса.
бинарная запись прям на диск может и быстрее будет. но если вам понадобится доступ к 100M данным, раскиданным по файлам - тут хз. база может оказаться быстрее. иначе вам придется сочинять свой велосипед для доступа к таким файлам.
0
0 / 0 / 0
Регистрация: 14.01.2015
Сообщений: 4
14.01.2015, 22:06  [ТС]
DU2, я имею ввиду создавать для каждого массива отдельный файл (как на данный момент у меня и реализовано)
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
14.01.2015, 22:33
Цитата Сообщение от Enjection Посмотреть сообщение
создавать для каждого массива отдельный файл (как на данный момент у меня и реализовано)
Простите за резкость, но это чушь и бред. Попробуйте создать в одной папке хотя бы 100000 файлов (пустых), и посмотрите, что из этого получится. Конечно, нужно создавать свой аналог файловой системы на одном большом файле (велосипедный вариант) или юзать базы данных. В последнем случае накладные расходы на организацию базы могут превзойти все ваши ожидания (но, не обязательно).
Отталкиваясь от стартового поста, могу наметить 2 пути. 1) Присмотреться к алгоритму. Возможно, в ваших данных есть большая избыточность и/или повторы. Это может позволить организовать хранилище на пару порядков компактнее. 2) Террабайтовые диски уже вовсе не экзотика. Ориентируйтесь на них. Только не вздумайте такие файлы читать в память целиком
3
0 / 0 / 0
Регистрация: 14.01.2015
Сообщений: 4
14.01.2015, 22:40  [ТС]
Байт, спасибо, первое о чем подумал это БД, но не очень хотелось разбираться, посмотрим что из этого выйдет
0
286 / 192 / 56
Регистрация: 25.12.2012
Сообщений: 640
15.01.2015, 06:46
А зачем для каждого отдельный ? Делайте для всех один, просто в начале пишите размер что бы потом считать, и не нужно никаких файловых систем.
0
 Аватар для агерон
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
15.01.2015, 06:59
а что вы храните в массивах по 4096 байт? данные какого типа?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.01.2015, 06:59
Помогаю со студенческими работами здесь

Хранение большого количества файлов
Есть свой видео-хостинг типа ютуба, и вот такой вопрос возник. Как мне организовать хранение файлов в файловой системе так, чтоб потом...

Хранение и использование большого количества изображений
Всем привет! Подскажите способ хранения большого количества изображений, чтобы можно было эти изображения удобно использовать. Смотрел...

Хранение большого количества настроек - нужна подсказка
Пишу программу, которая требует хранения множества настроек. Я их разделил на несколько типов: 1) размер и положение окна, размер...

Хранение большого количества файлов и быстрый доступ к ним
мне надо хранить загружаемые файлы чтобы доступ к любому файлу был очень быстрым. т.к. пути к файлом и список файлов пользователя хранится...

Хранение бинарных данных
Существует ли в C++Builder такой способ сохранения объектов (просто разнородных двоичных данных) в файлы как сериализация? Если нет, то что...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru