|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.12.2016, 15:58 | #1 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
Один миллиард бит. Как выгрузить и загрузить?
Здравствуйте!
У меня есть массив из миллиарда элементов типа boolean. Попробовал их записать в типизированный файл по одному - понял, что дохлый номер... Записать 50 миллионов строк получается в разы быстрее... Есть ли какая-то возможность записать этот массив так, чтобы потом получать к элементам массива потом простой и быстрый доступ из других программ? |
12.12.2016, 16:30 | #2 |
Старожил
Регистрация: 25.08.2011
Сообщений: 2,841
|
Перевести их в байты и хранить массив байтов. Это всего около 120 мегабайт получается если я не напутал. Че тут голову ломать.
А доступ простым расчетом положения байта и сдвигом битов.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два. |
12.12.2016, 16:31 | #3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Файл в гигабайт? Пиши не по одному байту, а достаточно большими блоками, например в мегабайт. Читать FileStream по смещению, это и будет индекс в массиве. 120 мегабайт если 8 булевых засунуть в один байт. Так файл будет в 8 раз короче и чуть сложней расчет смещения
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
12.12.2016, 16:44 | #4 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
Аватар а не в гигабит?..
Спасибо за направление. Попробую поизучать FileStream, до этого с ними не сталкивался и не работал. |
12.12.2016, 17:09 | #5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Я проглядел в заголовке миллиард бит. А в посте речь о типе boolean, он вообще-то в делфи далеко не бит, а 1 байт
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
12.12.2016, 17:15 | #6 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
Байт?... Спасибо за инфу, это я как-то подзабыл, и найти подвох вроде как и повода нет: два состояния переменной - чем не бит?..
Тогда точно надо переводить по 8 штук в байты. |
12.12.2016, 17:18 | #7 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
13.12.2016, 10:17 | #8 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,646
|
Вообще-то один Boolean может и 4 байта занимать.
E-Mail: arigato.freelance@gmail.com
|
13.12.2016, 10:28 | #9 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
То ж LongBool, а не Boolean
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как добавить в БД (MySQL) один миллиард записей? | *stRong* | PHP | 3 | 12.06.2016 16:42 |
Подскажите, пожалуйста, начинающему: Программа из двух кнопок: Загрузить файл в папку с внешнего накопителя и выгрузить | AID89 | Общие вопросы C/C++ | 2 | 20.04.2016 12:01 |
Загрузить и выгрузить pdf файл из ado | Ernest027 | БД в Delphi | 23 | 26.12.2015 18:29 |
Миллиард записей в бд | Predator199 | PHP | 1 | 21.11.2012 23:09 |
как выгрузить сайт в интернет | steck | Свободное общение | 18 | 22.02.2011 13:47 |