2017-02-15 7 views
1

Есть ли какая-либо информация для руководства относительно обработки довольно больших (5MB) наборов данных GeoJSON в mapbox?Производительность Mapbox - отдельные слои vs setData vs filters

У меня есть 3-4, которые мне нужно показать и переключаться между ними на одной карте. Лучше ли комбинировать источники данных и использовать filter на слое, чтобы выбрать нужные данные? или было бы лучше создать 3-4 слоя и показать/скрыть в зависимости от необходимости? или было бы лучше иметь один слой и подавать данные через setData на слой?

ответ

1

Ответ на этот вопрос зависит от того, что узким местом производительности является:

  • Если узкое место передачи данных в/из рабочих потоков, используя setFilter устранит необходимость в переносе данных на рабочих потоков.
  • Если ваше узкое место фильтрует данные в рабочих потоках, и вы можете более эффективно обрабатывать эти данные, использование setData устранит необходимость фильтровать данные по рабочим потокам.
  • Если у вас есть много памяти, доступной и нужно, чтобы показать/скрыть слои быстро, создавая 3-4 отдельных слоев и показа/скрытия в зависимости от потребностей будет лучше

Ваше узкое место будет зависеть от ваших данных, ваш шаблонов использования и вашего устройства. Как всегда, я рекомендую делать то, что проще всего & профилировать, если perf isn'f достаточно!

+0

Спасибо за информацию Lucas. Извините мое отношение, но я не уверен, что вы подразумеваете, передавая данные в рабочие потоки и из них, так как я не сознавал, что использую рабочие потоки. Можете ли вы немного разобраться? Мое впечатление от узкого места производительности заключается в том, что это рендеринг на стороне клиента, но я не на 100% приветствую любые советы по измерению и идентификации узких мест в Mapbox, в частности. – dougajmcdonald

+0

У меня такой же вопрос, и мне хотелось бы больше разъяснений @ lucas-wojciechowski о том, как измерить, переносит ли узкое место данные в рабочие потоки или из рабочих потоков или фильтрует внутри рабочих потоков. @dougajmcdonald, я понимаю, что 'mapbox-gl-js' использует рабочие потоки внутри. – Gregor

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