wofs писал(а):vitaly_l писал(а): Ну раз Вы собираетесь делать доброе дело, то там на самом деле можно сделать(добавить) дерево из вот этого рекорда
wofs писал(а): А как это сделать?
Забейте ненужно там дерево, как факт. Кому надо тот сам его сделает.
wofs писал(а):А вот если взять файл ~50Мб, то x32 вывалится с Out Off Memory, а x64 откроет, но съест всю доступную память при парсинге (у меня ~ 5Гб).
50Mb превратились в 5Гб??? Похоже на свежие "ресурсы" мамонта.
Однако, YML - файлы, легко, могут быть и изначально = гигабайт и два и три (правда, ВОЗМОЖНО у яндекса есть ограничение по размеру), тогда ваш код явно свалится.
wofs писал(а):как уменьшить расход памяти?
Технически можете начать с замены, record на paced record. Кроме того, можно задать все значения с максимально их возможным кол-вом байт, это тоже сократит выделяемую под массивы память.
Например вот это явное излишество мамонта:
- Код: Выделить всё
TAge = record
year: integer;
month: integer;
end;
т.к. month - это максимум byte, а не integer. year - тоже явно не integer. Ну и везде подобное хулиганство мамонта - нужно по-сокращать.
Остальной код мамонта пусть опытные программисты изучают и подсказывают.
.