03
500 тыс. объектов на карте: первый рендер с 800 до 480 мс.
Ограничение
Плотным GIS-интерфейсам нужно было рендерить и обрабатывать наборы данных из примерно 300–500 тыс. геопространственных объектов, не делая первое взаимодействие ощутимо медленным.
Инженерное решение
Перестроил слои и стили, внедрил кластеризацию и фильтрацию на клиенте, а также сократил лишнюю работу на пути данных между state-слоем React и Elasticsearch.
Результат
Начальный рендеринг Mapbox GL JS упал примерно с 800 до 480 мс, плюс отдельная работа над алгоритмами дала 30%-ное улучшение скорости геопоиска.
ReactMapbox GL JSReduxElasticsearchPerformance Profiling
800 → 480msначальный рендер карты
300K–500Kгеопространственных объектов