Форум: "Основная";
Текущий архив: 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