- Код: Выделить всё
- // Тип - общая характеристика файла
 TFileInfo = record
 FileName: String;
 Attr: Longint;
 Size: Longint;
 DateTime: TDateTime;
 end;
Память при добавлении характеристики в список выделяется при помощи GetMem, а указатели хранятся в TList. Если список составляется для относительно небольших директорий (до 20000 файлов/директорий) все работает относительно быстро. Когда количество переваливает за 100000 - это просто несколько десятков файлов/директорий в секунду!
Как бороться с подобным поведением класса TList?
PS: Исходники тайной не являются, кому необходимо - отправлю по почте. Предназначены программы для мониторинга файловой системы. Компилируются как под win32 (исключая 9x/Me) так и под Linux, но я их пытаюсь использовать исключительно под Linux.
Все это тестируется на P4 2.8 GHz, 1GB RAM, 160 GB SATA HDD




