![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#16
|
||||
|
||||
![]() Как совет и не более:
1) Посчитай сколько веток у дерева; 2) Руби дерево по веткам и кидай каждую ветку в отдельный поток (ветка как новое дерево в потоке, как новый Ref в интерфейсе); 3) Контролируй вложенность каждой срубленной ветки и при необходимости руби на более мелкие ветки; 3) Если дерево с о-о-очень длинным вложениями (ветками) - как вариант создавай очередь потоков; 4) Если дерево "вЕсит" очень много - как вариант разбивай на маленькие деревья и выбрасывай пул на диск, а индексы в ОЗУ. Такой подход займет время на подготовку(парсинг), но существенно ускорит запись/чтение листьев. Может я не правильно понял задачу. Я видел лишь попытку разбора дерева, а что делается с листьями? Куда ложатся данные? Если в одно и то же место - следует ли учесть порядок данных? и т.д. Самые сильные программисты были на заре компьютеризации. И чем дольше я программист, тем больше это понимаю - мы до сих пор поддерживаем их код... |
Этот пользователь сказал Спасибо Alex_4444 за это полезное сообщение: | ||
Uniq! (17.03.2015)
|