Этот вопрос касается Java JTree или Window. Net Tree (Winforms) или дерева Adobe Flex.Большое дерево: когда выпустить данные в RIA
В клиент-серверном приложении (для Flex это Web, действительно), у меня есть дерево с иерархическими данными (в интерфейсе типа проводника Windows). Сейчас я лениво загружаю дерево, поскольку пользователь запрашивает больше данных с сервера. Это нормально и будет работать до 750K узлов (эмпирически протестированных на .Net Winforms и Adobe Flex), но после этого он становится вялым. Но базы данных быстро растут (в основном потому, что пользователи могут вставлять огромные количества узлов), а база данных с 20 миллионами узлов не является маловероятной.
Должен ли я выпускать данные из дерева, когда ветвь сбрасывается, чтобы сборщик мусора мог освободить память? Это хорошо, но что, если пользователи не эффективны и не сворачивают ветви? Должен ли я сделать модуль управления памятью, который касается закрывающих ветвей, которые не были затронуты через некоторое время?
Все это похоже на большую работу, чтобы не выходить из памяти.
Редактировать: Должен ли я выпускать данные об обрушении узлов? Если да, то когда? Идея кэширования слабых объектов хороша, но я должен просто продолжать заполнять пользовательский интерфейс, пока он не упадет (может быть, это не плохая идея)?
Интересные точки. С другой стороны, я думаю о недревесных структурах, которые могут работать. Работа с PHP недавно в Eclipse убедила меня в том, что сама структура Tree довольно раздражает для большого количества узлов. – 2008-11-12 23:31:17