![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
работа с большим ;текстовым файлом [D5, NT4]
программист_ищу_работу © (2002-10-04 14:42:00)Привет мастерам.
Возник такой вопрос. (не критичный, но желательный).
Есть текстовый файл длиной до 99Мб. Из него нужно читать и обрабатывать определенную информацию, но, если пользоваться просто readln, то доходит до 30-50 секунд на машине PIII с 512 Мб памяти. Как видите время выполнения несерьезное. :-((
Каким образом можно ускорить обработку? Любые идеи и пожелания только приветствуются.
программист_ищу_работу (2002-10-04 15:51:00) [1]точно, только что дошло. При входе в программу закачиваем в array of stringи все, мы в дамках. Спасибо за поддержку :-)
Anatoly Podgoretsky (2002-10-04 15:37:00) [2]TStringList или array of string, если достаточно памяти
программист_ищу_работу (2002-10-04 15:27:00) [3]2Anatoly Podgoretsky ©
Да, но задача в том, что задача исполняется не только на этой машине, но и на машинах юзеров. Причем по нескольку раз в течении минуты. :-(
С разными входными условиями.
Возможно конечно сделать отдельную базу именно для этого, благо mysql крутиться на сервере, но, хотелось бы хот бы теоретически решить такую задачу. Можно ли как-то загрузить файл в память, для повторяющихся операций...
Anatoly Podgoretsky (2002-10-04 15:09:00) [4]Отлично, именно такой тест я как раз и делал не так давно, 120 мб, 6 секунд на быстром винчестере и 12 сек на относительно медленном, рабочая станция 98
программист_ищу_работу (2002-10-04 15:01:00) [5]без обработки 13 секунд.
процедура работы ниже
assignfile(f,"router.log");
reset(f);
repeat
readln(f,s);
until eof(f);
closefile(f);
showmessage("ok");
винт и так SCSI. Это сервер. :-)
Anatoly Podgoretsky (2002-10-04 14:51:00) [6]программист_ищу_работу © (04.10.02 14:42)
Поставить более быстрый винчестер, наприме 10к
Best Before 2024 (2002-10-04 14:50:00) [7]Временно исключите обработку информации из кода и засеките время на чтение
файла, а потом уже принимайте решение
MBo (2002-10-04 14:50:00) [8]для ускорения чтения могут помочь Memory-Mapped Files,
а про твою обработку мы ничего не знаем
Best Before 2024 (2002-10-04 14:45:00) [9]А может, дело не в ReadLn, а в обработке?