Версия: 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, чтобы чаще выполнялась полная повторная компиляция, либо полностью отключите настройку.