Версия: 2.1 🚧
Производительность
В большинстве случаев Deneb работает достаточно быстро. Но если вы создаёте большой и сложный визуал с множеством данных, стоит оценить результат и нагрузку на компьютер — как во время разработки, так и при просмотре отчёта пользователями.
Разработчики уже уделяют внимание тому, чтобы всё работало удобно, и планируют улучшать производительность интерфейса в следующих версиях.
Ниже приведены рекомендации по поддержанию оптимальной производительности.
Выбор средства отрисовки
Средство отрисовки можно выбрать на панели Settings редактора визуала.
По умолчанию используется SVG: спецификация отображается с помощью векторной графики. Также можно выбрать Canvas, использующий растровую графику.
- SVG подходит для большинства простых визуализаций данных и обычно даёт чёткий результат, хорошо масштабируемый при разных размерах.
- Однако, как и большое число визуалов на странице отчёта Power BI, использование SVG с большим объёмом данных может ухудшить производительность.
- Если вам нужен SVG при большом объёме данных, подумайте, можно ли объединить несколько точек данных в один элемент на экране — например, использовать
lineвместоpoint. Это уменьшает число отдельных элементов. Группировка по интервалам и агрегирование тоже помогают сократить число примитивов. - Если избежать большого числа примитивов нельзя, вероятно, лучше выбрать Canvas: он оптимизирован для таких сценариев. Но Canvas масштабируется хуже SVG и при увеличении может выглядеть размытым.
- Настройка Scale to report zoom level на панели Settings смягчает этот эффект: она подстраивает разрешение Canvas под текущий масштаб отчёта и предварительного просмотра редактора. Результат не будет таким же чётким, как SVG, но при большом масштабе станет заметно резче. По умолчанию настройка выключена и применяется только при выборе Canvas.
Подробнее о различиях Canvas и SVG, их преимуществах и недостатках можно прочитать в статье CSS-Tricks «When to Use SVG vs. When to Use Canvas».
Применение изменений при вводе или вручную
Редактор визуала умеет применять изменения к результату по мере ввода. Это удобно, но может существенно замедлить работу, если вы быстро вносите много изменений в сложную спецификацию: после каждого изменения Vega или Vega-Lite должен заново разобрать спецификацию и отрисовать результат.
При включённой настройке Deneb уже уменьшает число лишних обновлений, в том числе откладывая обработку ввода до небольшой паузы между изменениями (debouncing). Тем не менее при редактировании сложной спецификации или работе с большим объёмом данных рекомендуется применять изменения вручную, когда они готовы.
Добавляйте только необходимые столбцы и меры
Любые данные, добавленные в визуал, влияют на производительность:
- Power BI должен выполнить запрос DAX, чтобы подготовить набор данных для Deneb.
- Deneb нужны ресурсы для обработки набора данных, а Vega или Vega-Lite — для отрисовки результата по спецификации.
- Излишне подробный контекст строк может усложнить получение желаемого результата.
Поэтому добавляйте только те столбцы, меры и контекст фильтрации, которые нужны визуалу для передачи информации.
Порог непрерывного представления
Настройка непрерывного представления позволяет сохранять состояние представления при обновлении набора данных. Вместо полной повторной компиляции данные обновляются в существующем представлении Vega. Параметр Row threshold for patching определяет, когда предпринимается такая попытка. Однако число строк не всегда хорошо отражает стоимость обновления: на неё могут сильнее влиять структура набора данных — широкие строки, вложенные значения — и сложные преобразования.
Если обновление занимает слишком много времени, Power BI может приостановить визуал из-за долгого ответа. После включения непрерывного представления проверьте его на реалистичных объёмах данных. При ухудшении отклика уменьшите Row threshold for patching, чтобы чаще выполнялась полная повторная компиляция, либо полностью отключите настройку.