важно отметить, что более старая библиотека Mapbox. js обслуживала растровые плитки, которые обрабатываются на стороне сервера, а более современный Mapbox GL JS основан на векторах и визуализирован на стороне клиента. Из-за природы растр против вектора, вы можете увидеть это «падение» в производительности, если вы строго смотрите на FPS, потому что ваша машина может работать.
Mapbox. js, как и другие традиционные JavaScript библиотеки карт, использующие соглашение отображения базовых карт с наложением. Базовая карта (или базовый слой) - это растровый слой листов, который обслуживается уже отрисованным с сервера, и наложения часто представляют собой векторные данные, которые располагаются поверх базовой карты.
Mapbox GL JS не имеет различия между базовыми слоями и накладывать слои и использовать в основном векторные плитки. Это означает, что детали карты, такие как метки, значки и элементы, такие как улицы и здания, можно изменить с помощью JavaScript, как наложения в более ранних библиотеках отображения. Каждый слой содержит правила о том, как визуализатор должен рисовать определенные данные в браузере, и визуализатор использует эти слои для рисования карты на экране.
Подробнее о разнице вы можете прочитать здесь: https://docs.mapbox.com/help/how-mapbox-works/web-apps/
Также есть несколько замечательных руководств по повышению производительности Mapbox GL JS карт и , работающих с большими источниками Geo JSON в Mapbox GL JS