@vaskadogana
Frontend developer

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

Сейчас обход массивов происходит через map() и for. Может можно как то это делать быстрей, а то после 15 000 элементов начинаются лаги.

из массива потом рисую график на canvas с помощью d3.
p.s когда isEqual() из lodash возвращает ответ, при первом false?
  • Вопрос задан
  • 244 просмотра
Пригласить эксперта
Ответы на вопрос 4
@Interface
В первую очередь, я бы посоветовал вам пройтись профайлером (https://developers.google.com/web/tools/chrome-dev... и убедиться, что проблема именно в итерации. Действительно, 15 000 элементов - не тот масштаб для совеременного js и железа, чтобы тормозило сильно. Возможно вы пересчитываете на каждый кадр, например, и тогда имеет смысл делать это реже?

Разница между for и map должна быть незначительна, особенно на таких масштабах.

Обходить в общем случае быстрее, чем for'ом вряд ли возможно, но может быть вы можете использовать другие структуры данных hash-таблицы, Map / Set (es6) etc.
Ответ написан
SPAHI4
@SPAHI4
реактовцы - это не девы, а прокидыватели пропсов
Батчить, например, по 1000 за тик.
Если сложные вычисления, то можно вывести в вебворкер, чтобы не блокировать ui.
Ответ написан
через each() попробуй
Ответ написан
Комментировать
Krasnodar_etc
@Krasnodar_etc
avito front
15 к должно быть не очень много даже для map. Вы на фронте это делаете чтоль?

Самый быстрый обход массива - for от последнего элемента, к первому.
Ответ написан
Ваш ответ на вопрос

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

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