Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.09.26;
Скачать: [xml.tar.bz2];

Вниз

Оптимизация скорости разбора текстового файла   Найти похожие ветки 

 
3asys   (2002-09-13 15:10) [0]

Произвожу разбор текстового файла загруженного в TRichEdit. В цикле прохожу строки и символы формируя индексный файл. Все работает нормально, но ОЧЕНЬ медленно. Как можно было бы ускорить процесс?
Подозреваю, что есть какой-то "другой путь", но какой - не догадываюсь.
Что здесь можно сделать?

С Уважением, 3asys


 
Aristarh   (2002-09-13 15:12) [1]


Сам я с этим делом и близко не сталкивался, но попробовал бы условно разбить файл на части и обрабатывать их в отдельных потоках.


 
3asys   (2002-09-13 15:16) [2]

Да, но потоки-то все равно выполняются последовательно. Может есть какой-то радикальный способ, а то очень уж медленнй процесс получается.

С Уважением, 3asys


 
Reindeer Moss Eater   (2002-09-13 15:19) [3]

Наверное значительное время уходит на визуализацию RichEdit. Если его не использовать, будет быстрее


 
3asys   (2002-09-13 15:27) [4]

Нет. RichEdit не визуализируется. Он создается run-time на время разбора текста.
Может быть можно было бы анализировать прямо сам текстовый файл не загружая его в RichEdit, но как это делать? и будет ли это быстрее?

С Уважением, 3asys


 
Aristarh   (2002-09-13 15:46) [5]


>3asys
>Да, но потоки-то все равно выполняются последовательно. Может есть какой-то радикальный способ, а то очень уж медленнй процесс получается.

Потоки, то выполняются последовательно, но не постоянно. Win выделяет каждому потоку определенное время, затем поток простаивает. Если добавить потоки, то суммарное процессорное время, выделяемое программе будет больше. На этом и основаны мультипоточные приложения, они позволяют откусить бо"льшую часть пирога.


 
Yuri-7   (2002-09-13 15:48) [6]

Попробуй загрузить текстовый файл в TStrings. RichEdit для этого совсем не нужен.


 
Aristarh   (2002-09-13 15:54) [7]


>Yuri-7

Не уверен, что сильно поможет.


 
mrcat   (2002-09-13 15:56) [8]

какой размер текстового файла?


 
Alx2   (2002-09-13 15:57) [9]

>3asys (13.09.02 15:10)
Попробуй заменить на время RichEdit на что нибудь попроще. Сравни время работы. Может быть, собака зарыта в самой реализации алгоритма.
Либо сразу используй TStringList (Yuri-7 (13.09.02 15:48))


 
3asys   (2002-09-13 16:01) [10]

В TStrings загружал - выигрыш, если и есть - не существенный.
Размер файла может быть принципиально любым. Дело в том, что файл уже в 1000-3000 строк обрабатывается довольно медленно.
Потоки попробую, но, простите, мне нужно поднять скорость раз в 10-15 , чтобы это было серьезно. Не уверен, что этого можно достичь за счет использования потоков.

С Уважением, 3asys


 
mrcat   (2002-09-13 16:05) [11]

дело скорее в алгоритме обработки файла. Текст в студию :)


 
Reindeer Moss Eater   (2002-09-13 16:07) [12]

Что тебе точно не поможет, так это потоки


 
NickBat   (2002-09-13 16:08) [13]

> 3asys (13.09.02 15:10)

> Произвожу разбор текстового файла загруженного в TRichEdit.
Что за разбор, для чего грузить в TRichEdit?

> строки и символы формируя индексный файл.
Что за индексный файл, где он будет использоваться?



 
3asys   (2002-09-13 16:22) [14]

Речь идет о создании индексного файла вида: [ID] [Word] [ID Text] для последующего поиска текстов и их фрагментов по ключевым словам внесенным в этот файл.
Простой, дубовый, но работает уже довольно долго, однако скорость оставляет желать много лучшенго. Идея алгоритма: 2 вложенных цикла - внешний по строкам, внутренний - по символам. Внутренний собирает слова, отфильтровывает определенные символы, слова и фрагменты, а те,что оставляет, записывает в таблицу указанного выше формата, где [ID Text] это ID разбираемого текста.
Потом в поисковой системе в строке запроса вводим ключевые слова и ищем их в индексной таблице, а найдя показываем связанный с найденным словом файл. Вот и все.

Так вот, может все можно сделать подругому?

С Уважением, 3asys


 
Alx2   (2002-09-13 16:28) [15]

>3asys (13.09.02 16:01)
Ну, тогда проблема не в RichEdit
Надо оптимизировать твой алгоритм.
Давай его краткое описание и реализацию.
(А лучше погонять профайлером каким-нибудь (VTune, например) и сразу определить наиболее тормозные моменты в коде и работать над ними. Либо пересмотреть весь алгоритм).



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

Форум: "Основная";
Текущий архив: 2002.09.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.008 c
1-85567
Ender
2002-09-13 20:01
2002.09.26
Image и ScrollBar


3-85363
maxim2
2002-09-05 06:15
2002.09.26
Надо узнать длину поля в таблице, незнаю как?


3-85349
Nonam
2002-09-04 16:48
2002.09.26
Ref Cursor


1-85453
Vitalik
2002-09-16 07:47
2002.09.26
объекты и классы


1-85553
3asys
2002-09-13 15:10
2002.09.26
Оптимизация скорости разбора текстового файла





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский