JUNG не может отображать большие графики? - PullRequest
4 голосов
/ 27 февраля 2010

Я использую JUNG для проекта, и когда я отображаю относительно большие графики, например 1500 узлов, мой компьютер не сможет с этим справиться (графики отображаются, но если я хочу перемещаться по графику, система становится очень медленной). Любые предложения.

Ответы [ 3 ]

2 голосов
/ 30 ноября 2012

Итак, есть две вещи, которые визуализация JUNG не всегда хорошо масштабирует прямо сейчас:

  1. итеративно-ориентированные макеты
  2. взаимодействие: выяснение, на какой узел или ребро (если оно есть) ссылаются для событий наведения и щелчка.

Звучит так, будто вы столкнулись с последним.

В зависимости от ваших требований у вас есть несколько вариантов:

  • (a) отключение событий мыши или, по крайней мере, событий зависания
  • (b) взломать систему визуализации, чтобы поиск целей событий не был O (m + n).

Простые решения для (b) в основном просто делят область просмотра на маленькие кусочки и отправляют события только тем элементам, которые находятся в той же части, что и указатель. (Очевидно, что чем меньше куски, тем больше памяти требуется.)

У нас были планы сделать (б) (и набросок дизайна) в течение некоторого времени, но мы работали над другими вещами. Любой, кто хочет помочь с более постоянным решением, пожалуйста, свяжитесь со мной.

2 голосов
/ 28 февраля 2010

Сколько памяти вы запускаете виртуальную машину? Предполагая, что вы работаете с Windows, просматривая диспетчер задач, виртуальная машина достигает максимального объема выделенной памяти и начинает использовать swap?

0 голосов
/ 19 ноября 2012

Проблема, вероятно, заключается в расчете позиций ваших вершин. Единственный макет, который мне показалось довольно простым для вычисления, - это макет дерева, и, очевидно, он подходит не для всех наборов данных.

Решение, вероятно, состоит в том, чтобы написать свой собственный макет с гораздо меньшими вычислениями, чем, скажем, FRLayout.

...