Главная страница
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.013 c
1-45326
Natangelina
2002-10-05 12:45
2002.10.14
Сравнить поле таблицы с edit.text


1-45284
Коля Н
2002-10-02 15:14
2002.10.14
Hint на нарисованнцю кнопку.


1-45393
Demn
2002-10-01 05:05
2002.10.14
Просмотр директории на изменения


1-45286
e|uk
2002-10-02 20:45
2002.10.14
помогите со стринггридом


4-45619
Карлсон
2002-08-29 23:20
2002.10.14
Опять про хендлы.