Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.14;
Скачать: 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 вся ветка

Текущий архив: 2002.10.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
1-45273
SergoKan
2002-10-02 17:08
2002.10.14
подскажите


14-45580
Kordel
2002-09-20 20:56
2002.10.14
SmartDrive


6-45496
Димон1
2002-08-13 09:56
2002.10.14
ClientSocket.Connected НЕ ОБНОВЛЯЕТСЯ !


6-45484
s.kaster
2002-08-13 08:15
2002.10.14
Нужно по нажатию


1-45344
Leshka18
2002-10-06 00:30
2002.10.14
Как скомпилить?