Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > самый быстрый алгоритм поиска в реестре


Автор: Teran 12.1.2007, 16:38
Подскажите пожалуйста самый быстрый алгоритм для поиска в реестре

Автор: _hunter 12.1.2007, 17:13
он в принципе и единственный: берем корневой узел, проходим по всем его детям, по детям детей, ...

Автор: Teran 12.1.2007, 17:22
мне нужно перерать весь реестр а простой перебор не устраивает - слишком долго это днлает

Автор: aktuba 12.1.2007, 17:28
Цитата

мне нужно перерать весь реестр а простой перебор не устраивает - слишком долго это днлает 


В смысле долго??? Какой объем данных - такое и время...

Автор: KEM 12.1.2007, 17:49
организуй поиск напимер 5-ю потоками. по одному на куждую ветвь, ну и т.д.

Автор: W4FhLF 12.1.2007, 17:55
KEM, это нихрена не даст, на однопроцессорной системе по-крайней мере. Я б использовал функции из ntdll.dll, работал бы только с UNICODE, ну и критические участки оптимизировал бы непосредственно по факту их "торможения". 

Автор: Sunvas 12.1.2007, 19:04
Цитата(W4FhLF @  12.1.2007,  17:55 Найти цитируемый пост)
KEM, это нихрена не даст, на однопроцессорной системе по-крайней мере.

Еще как даст.. Все зависит от кривизны рук. smile 

Автор: W4FhLF 12.1.2007, 19:07
Цитата(Sunvas @  12.1.2007,  19:04 Найти цитируемый пост)
Еще как даст.. Все зависит от кривизны рук. 


Ну твои намёки мне ни к чему. Обоснуй, что это даст.

Автор: Sunvas 12.1.2007, 19:16
Цитата(W4FhLF @  12.1.2007,  19:07 Найти цитируемый пост)
Ну твои намёки мне ни к чему. Обоснуй, что это даст.

По крайней мере все будет быстрее. Чем если делать только одним потоком.

Автор: W4FhLF 12.1.2007, 19:17
Цитата(Sunvas @  12.1.2007,  19:16 Найти цитируемый пост)
По крайней мере все будет быстрее. Чем если делать только одним потоком.


С чего ты так решил? На чём основаны эти выводы?

Автор: Sunvas 12.1.2007, 19:26
Выводы на чем основаны? - на элементарной логике. Попробую приблизительно обрисовать:
Допустим запущено в винде 10 процессов (будем считать 10 потоков) и наша программа (тоже 1 поток). Итого нашей программе будет выделяться 1/11 процессорного времени.
А если наша программа будет иметь 10 потоков - то ей уже будет выделяться 10/20 или 1/2 процессорного времени.
Что больше, думаю догадаешься сам.

Автор: W4FhLF 12.1.2007, 19:40
Sunvas, RTFM короче. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)