Показать сообщение отдельно
  #16  
Старый 16.03.2015, 17:06
Аватар для Alex_4444
Alex_4444 Alex_4444 вне форума
Прохожий
 
Регистрация: 22.12.2014
Сообщения: 14
Версия Delphi: XE5
Репутация: 50
По умолчанию

Как совет и не более:
1) Посчитай сколько веток у дерева;
2) Руби дерево по веткам и кидай каждую ветку в отдельный поток (ветка как новое дерево в потоке, как новый Ref в интерфейсе);
3) Контролируй вложенность каждой срубленной ветки и при необходимости руби на более мелкие ветки;
3) Если дерево с о-о-очень длинным вложениями (ветками) - как вариант создавай очередь потоков;
4) Если дерево "вЕсит" очень много - как вариант разбивай на маленькие деревья и выбрасывай пул на диск, а индексы в ОЗУ.
Такой подход займет время на подготовку(парсинг), но существенно ускорит запись/чтение листьев.

Может я не правильно понял задачу. Я видел лишь попытку разбора дерева, а что делается с листьями? Куда ложатся данные? Если в одно и то же место - следует ли учесть порядок данных? и т.д.
__________________
Самые сильные программисты были на заре компьютеризации.
И чем дольше я программист, тем больше это понимаю - мы до сих пор поддерживаем их код...
Ответить с цитированием