Самая быстрая структура данных в Java (обработка для 4D визуализации)

StackOverflow https://stackoverflow.com/questions/3419908

Вопрос

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

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

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

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

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

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

Спасибо!

Это было полезно?

Решение

Обработка с OpenGL является опцией, но если вы столкнулись с проблемами производительности, я бы порекомендовал посмотреть на OpenFrameworks или libcinder..

Они C ++, а не Java, но OpenFrameworks, например, имеют очень похожий синтаксис для обработки.

Сравнить Матф Сдобода перекодировать запись к другим реализациям обработки.

Идея такова, попробуйте обработку с OpenGL, чтобы увидеть, если вы получаете нужную вам кадру, иначе попробуйте OpenFrameWoks или libcinder.

Емкость

Другие советы

утра Предоставляет график сцены, который делает что-то вроде того, что вы описываете.

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

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

float [][]vectors=new float[4][500000];

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top