Re[3]: Менеджер памяти
От: VladFein США  
Дата: 28.07.21 21:30
Оценка:
Здравствуйте, TailWind, Вы писали:

TW>Где для каждого ID от 0 до 0x5000000 хранится небольшой блок данных (от 0 до 80 байт, но может быть и больше)


Что значит "до 80 байт, но может быть и больше"? До чего все-таки? 256?

Можно сделать большой файл, оставив максимальный размер записи. Обращаться по индексу.
Готовый файл можно обработать, выкинув свободные куски. Первые 0x5000000 четырехбитных слов — индекс.
Re[4]: Менеджер памяти
От: TailWind  
Дата: 29.07.21 02:09
Оценка:
TW>>Где для каждого ID от 0 до 0x5000000 хранится небольшой блок данных (от 0 до 80 байт, но может быть и больше)
VF>Что значит "до 80 байт, но может быть и больше"? До чего все-таки? 256?

Хотелось бы предусмотреть неограниченное увеличение

Давайте заложим 10% накладных расходов на всякие списки
Раз уж я решил не хранить блок данных одним куском

VF>Можно сделать большой файл, оставив максимальный размер записи. Обращаться по индексу.


Я хочу сделать в начале файла таблицу длинной N (макс ID)
На каждый ID одна запись

Если для этого ID нет данных, там -1
Если для этого ID есть только одно число (8 байт) пишем его в таблицу
Если больше 1го числа, то в таблице указывается индекс больше размера таблицы и там уже хранятся связные списки, которые сейчас нужно продумать

VF>Готовый файл можно обработать, выкинув свободные куски. Первые 0x5000000 четырехбитных слов — индекс.


ммм
Для данной задачи пост обработка после, чтобы уменьшить объём, не имеет смысла
Лучше не допускать, чтобы файл слишком сильно раздувался в процессе (в рамках 10%)
Re[7]: Менеджер памяти
От: Mr.Delphist  
Дата: 29.07.21 14:13
Оценка:
Здравствуйте, TailWind, Вы писали:

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

TW>С одной стороны нужен save, load
TW>С другой стороны в память 32-bit C++ application это не лезет

Контейнер не лезет в память? Тогда можно сюда:

google -> STL XXL
https://stxxl.org/
Re[3]: Менеджер памяти
От: imh0  
Дата: 29.07.21 14:33
Оценка: 4 (1) +1
Здравствуйте, TailWind, Вы писали:

TW>Интересно сделать самому


Ты пытаешся изобрести файловую систему — возьми FAT например и выкини от туда каталоги )
Re[4]: Менеджер памяти
От: TailWind  
Дата: 29.07.21 15:25
Оценка:
I>Ты пытаешся изобрести файловую систему — возьми FAT например и выкини от туда каталоги )

Просто таблица в которой два столбика: данные и следующий ID

Удваиваем объём файла, но очень упрощаем программу и увеличиваем скорость работы

Спасибо!
Отредактировано 29.07.2021 16:01 TailWind . Предыдущая версия . Еще …
Отредактировано 29.07.2021 15:26 TailWind . Предыдущая версия .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.