Самая быстрая структура данных в Java (обработка для 4D-визуализации) - PullRequest
3 голосов
/ 06 августа 2010

У меня есть приложение, для которого мне нужно использовать среду визуализации. В настоящее время я склоняюсь к обработке для использования в настольном приложении Java.

Проблема: у меня есть ~ 500k + векторов состояний, которые мне нужно визуализировать. 4D точки - XYZ и время (как у GPS)

Мне нужно иметь возможность быстро и легко выбирать временные интервалы, а также иметь возможность воспроизводить их во времени. У меня есть возможность изменить ввод, используя либо плоские файлы или дб.

Таким образом, вопрос заключается в следующем: какая структура данных наилучшим образом соответствует моим потребностям? Я читаю файлы в Arraylists? HashMap? Или в памяти базы данных? Или что-то еще?

Производительность необходима для визуализации в 3D. Период времени более 8 часов. Так что не все из них будут отображаться одновременно.

Кто-нибудь пытался использовать креативную среду кодирования для этого типа использования? Есть предложения?

Спасибо!

Ответы [ 4 ]

1 голос
/ 06 августа 2010

Обработка с OpenGL - вариант, но если у вас возникнут проблемы с производительностью, я бы рекомендовал взглянуть на openframeworks или libcinder .

Они c ++Не Java, но, например, openframeworks имеет очень похожий синтаксис для Processing.

Сравните запись перекодировки Мэтта Свободы с другими реализациями обработки.Обработка с OpenGL, чтобы увидеть, получаете ли вы необходимую частоту кадров, в противном случае попробуйте openframewoks или libcinder.

HTH

1 голос
/ 06 августа 2010

jMonkey предоставляет граф сцены, который делает нечто похожее на то, что вы описываете.

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

0 голосов
/ 06 августа 2010

2d массив звучит как хорошая идея.С хорошим алгоритмом сортировки, таким как быстрая сортировка или слияние, вы сможете выбирать временные интервалы.

0 голосов
/ 06 августа 2010
float [][]vectors=new float[4][500000];

Просто убедитесь, что вы сортируете их от начала до конца.Держите это простым и проверьте это?

...