Загрузка больших файлов

lnix
Дата: 25.04.2011 16:21:56
А как же тогда загружать такие большие файлы?
Maxim Rusov
Дата: 25.04.2011 16:23:30
А зачем их загружать?
Anatoly Podgoretsky
Дата: 25.04.2011 16:23:48
Не использовать таких ресурсо емких посредников, как TStringList.
Грузить с помощью ReadLn и возможно вообще не требуется, чтобы весь файл был в памяти.
lnix
Дата: 25.04.2011 16:27:28
Задача такая...
Загрузить образцы данных.
lnix
Дата: 25.04.2011 16:28:40
Вся дело в том чтобы весь файл с данными был в памяти, иначе не добиться максимального быстродействия. Т.к. все работает в режиме реального времени.
defecator
Дата: 25.04.2011 16:34:04
lnix
Вся дело в том чтобы весь файл с данными был в памяти, иначе не добиться максимального быстродействия. Т.к. все работает в режиме реального времени.


А как это у вас так работает в "реальном времени", если только на загрузку более 200 метров в экземпляр TStringList потребуется время, измеряемое, в лучшем случае, десятками секунд ?
Anatoly Podgoretsky
Дата: 25.04.2011 16:36:44
lnix
Вся дело в том чтобы весь файл с данными был в памяти, иначе не добиться максимального быстродействия. Т.к. все работает в режиме реального времени.

Загрузка всего большого файла и реальное время, слова антонимы.
lnix
Дата: 25.04.2011 16:39:48
В моем случае они очень уживаются...
Так нет никаких идей, как я понимаю...?
OracleX
Дата: 25.04.2011 16:42:01
Я в таких случаях использую ассемблер, но код не дам, жалко, долго корячился,
типа ноу-хау.
Maxim Rusov
Дата: 25.04.2011 16:43:43
Вам уже подсказали.
1. Не используйте StringList.LoadFromStream, напишите свою функцию без оверхеад'а по памяти.
2. Расширьте адресное пространство своему процессу (гуглить 4GT). В вашем случае (win64) это даст доступ к 4Г адресного пространства.