svk12 писал(а):И вставляйте его в TStringList.
VirtUX писал(а):Создавать целые объекты для миллионов параметров AnyParam мне кажется ресурсозатратным для ОЗУ.
Вот сколько будет выделено памяти под TPointerStore? Я так понимаю, что память будет занята всеми его полями, которые мне не нужны. И ОЗУ будет хранить более 50% всякого не нужного мусора. Или я не правильно понимаю выделение памяти под новый экземпляр TObject?
Добавлено спустя 20 минут 11 секунд:
Например: имеем 1 миллиард параметров. каждый параметр имеет идентификатор длиной в 10 байт (например: 'а000000001'). Параметр занимает в памяти 12 байт
- Код: Выделить всё
ParamForExample = record
pos: int64;
offset: DWord;
end;
Если использовать Pointer, то под каждый параметр будет использовано 12 + 4 (32bit) или 12 + 8 (64bit) байт в ОЗУ. А сколько будет использовано под класс, включающий в себя эти 16 или 20 байт? И умножим это на 1 миллиард. Сколько будет не нужного мусора в ОЗУ? Сколько занимает памяти сам TObject?
32 Гб ОЗУ под параметры мне сейчас не проблема выделить. Но если больше, то придется свопироваться, или разбивать на страницы. Но тогда теряем производительность.