Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

работа с большим ;текстовым файлом [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, а в обработке?


Наверх

Титульная страница Поиск, карта сайта Написать письмо