Как ускорить работу с массивами?

Работаю над проектом в котором нужно обрабатывать большое количество сырых графиков, применять разные формулы усреднения и т.д. Упрощенная схема такая: взять сырой массив точек -> обработать их-> запушить в новый массив-> отрисовать.
Сырых графиков может быть много, 250-500 графиков по 4000 точек в каждом. Нехитрой математикой получаем 500х4000=2 000 000 точек к которым нужно еще применить математику. Все это естественно начинает тупить и плохо работать. Можно как то силами js приемлемо обрабатывать такой массив данных? Спасибо.
  • Вопрос задан
  • 562 просмотра
Пригласить эксперта
Ответы на вопрос 3
Kozack
@Kozack Куратор тега JavaScript
Thinking about a11y
А что подразумевается под "обработать"?
Выносите тяжелые вычисления в Web Worker. Это позволит распаралелить вычисления.
Можно вынести какую-то логику в модуль webassembly.
Можно не рисовать в графике 2000 точек. А сделать динамическую точность. Рисовать, скажем 200 точек. В заданном интервале. Пользователь зумит -- изменяется интервал -- увеличивается точность.
Можно не рисовать все графики сразу. Например свойство content-visibility может помочь.
Или изменить способ отрисовки графиков.
И ещё очень много вариантов.

Прежде чем задавать такой вопрос, стоит розобраться что именно тормозит и почему. Загрузка сырых данных? Математика? Отрисовка браузером? И уже исходя из этого гуглить как исправить.
Ответ написан
SilenceOfWinter
@SilenceOfWinter
та еще зажигалка...
логичные ответ
1. улучшить железо
2. обрабатывать запросы на стороне сервера(php/ruby уж точно быстрее) т.к. js работает на стороне клиента, а железо у клиента..
Ответ написан
Комментировать
@AstraVlad
Финансист, консультант, программист-любитель
Может быть вообще можно заранее подготовить данные или хотя бы их часть? Особенно если разные люди работают с одними и теми же данными, то неплохо держать где-нибудь кэш и грузить данные из него в фоне пока юзер смотрит на график крупного масштаба, отрисованный, скажем, по сотне точек и думает где ему нужно увеличить.

В общем, если уточнить задачу, могут найтись разные решения.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы