Вниз
Скачать: CL | DM;

работа с большим текстовым файлом   Найти похожие ветки 

 
программист_ищу_работу ©   (2002-10-04 14:42) [0]

Привет мастерам.
Возник такой вопрос. (не критичный, но желательный).
Есть текстовый файл длиной до 99Мб. Из него нужно читать и обрабатывать определенную информацию, но, если пользоваться просто readln, то доходит до 30-50 секунд на машине PIII с 512 Мб памяти. Как видите время выполнения несерьезное. :-((
Каким образом можно ускорить обработку? Любые идеи и пожелания только приветствуются.


 
Best Before 2024   (2002-10-04 14:45) [1]

А может, дело не в ReadLn, а в обработке?


 
Best Before 2024   (2002-10-04 14:50) [2]

Временно исключите обработку информации из кода и засеките время на чтение
файла, а потом уже принимайте решение


 
MBo ©   (2002-10-04 14:50) [3]

для ускорения чтения могут помочь Memory-Mapped Files,
а про твою обработку мы ничего не знаем


 
Anatoly Podgoretsky ©   (2002-10-04 14:51) [4]

программист_ищу_работу © (04.10.02 14:42)
Поставить более быстрый винчестер, наприме 10к


 
программист_ищу_работу ©   (2002-10-04 15:01) [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 15:09) [6]

Отлично, именно такой тест я как раз и делал не так давно, 120 мб, 6 секунд на быстром винчестере и 12 сек на относительно медленном, рабочая станция 98


 
программист_ищу_работу ©   (2002-10-04 15:27) [7]

2Anatoly Podgoretsky ©
Да, но задача в том, что задача исполняется не только на этой машине, но и на машинах юзеров. Причем по нескольку раз в течении минуты. :-(
С разными входными условиями.
Возможно конечно сделать отдельную базу именно для этого, благо mysql крутиться на сервере, но, хотелось бы хот бы теоретически решить такую задачу. Можно ли как-то загрузить файл в память, для повторяющихся операций...


 
Anatoly Podgoretsky ©   (2002-10-04 15:37) [8]

TStringList или array of string, если достаточно памяти


 
программист_ищу_работу ©   (2002-10-04 15:51) [9]

точно, только что дошло. При входе в программу закачиваем в array of stringи все, мы в дамках. Спасибо за поддержку :-)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.011 c
1-45451
Dell3r
2002-10-03 20:19
2002.10.14
Как сделать чтобы окно не сворачивалось?


1-45390
bbn
2002-10-02 20:58
2002.10.14
Как установить фокус на программно-созданном элементе ?


3-45225
silenser
2002-09-24 09:50
2002.10.14
таблица


3-45206
BCPP_Builder_Dev
2002-09-23 12:05
2002.10.14
Юзеру хоцца вбивать поле


1-45431
DeMoN-777
2002-09-23 02:35
2002.10.14
Открыть в новом окне




   Наверх