2015-08-02 2 views
0

Я использую DC js для профилирования с Datatable плагинами из года.DC js с большим набором данных и многими измерениями

Теперь требование предъявляет огромные данные (> 2 000 000 строк) и большое количество измерений (20-30), оно висит в браузере и занимает много времени, а фильтрация также занимает много времени.

Любые предложения по улучшению времени отклика.

Я уже использую сжатие gzip, а длина переменной json мала.

Любые идеи уровня архитектуры приветствуются.

Спасибо заранее.

ответ

3

Всякий раз, когда вы говорите о 2 000 000+ строках с несколькими измерениями в браузере, вам нужно задуматься о границах платформы. В частности, поскольку браузеры не используют сжатые структуры данных для объектов Javascript, основной вопрос заключается в следующем: «Будет ли объект данных вписываться в память браузера?» Chrome, по крайней мере, когда я проверил год назад, сидел около 1 ГБ памяти. С 2 миллионами строк и 20 измерений вы будете нажимать, чтобы просто загрузить данные в браузер.

Учитывая это, я думаю, вы должны думать о том, как вы ограничиваете объем данных в браузере, сохраняя при этом интерактивность. Начните задавать вопрос, например: «Сколько измерений, какие мощности я буду показывать в любой момент времени?»

Цель состоит в том, чтобы решить, может ли фактическая функциональность приложения поддерживать браузер. Если вы решите, что браузер может поддерживать функциональные возможности (возможно, это возможно, но это не задано), тогда задумайтесь о том, как скоординированная система браузера/сервера может предоставить тип интерактивности, который вы хотите.

Один из способов сделать это - динамическое повторное агрегирование в зависимости от того, какие размеры отображает пользователь в любой момент времени. Я собрал http://lcadata.info пару недель назад в качестве взломанного примера одного подхода (это с открытым исходным кодом), который использует dc.js на лицевой стороне. Но есть и другие способы, и точный подход может быть несколько уникальным для приложения.

Удачи.

+0

Спасибо Ethan ..., я уменьшил объект JavaScript, указав короткие имена переменных, такие как c1, c2 и разделенные основные данные с транзакцией –

+0

Приятно слышать обратную связь! Спасибо за обновление. –

Смежные вопросы