Версия: 1.5
Производительность
Deneb ещё в начале пути
Мы только начинаем развивать Deneb. Большая часть проделанной работы была связана с решением технических задач, необходимых для реализации его возможностей внутри пользовательского визуала.
В большинстве случаев Deneb должен работать достаточно быстро. Однако если вы создаёте огромный визуал с большим количеством данных, подумайте о результате и о нагрузке, которую он может создавать на компьютере клиента — как во время разработки, так и при просмотре конечными пользователями.
Мы уже старались обеспечить удобную работу, но по мере развития будем целенаправленно улучшать производительность интерфейса.
На этой странице приведены рекомендации, которые помогут поддерживать оптимальную производительность.
Выбор средства отрисовки
Выбрать средство отрисовки можно на панели Settings редактора визуала.
По умолчанию используется SVG, который отрисовывает спецификацию в виде векторной графики. Также можно выбрать Canvas, использующий растровую графику.
- SVG обычно применяется для большинства простых визуализаций данных. Как правило, он даёт более чёткое изображение, которое хорошо масштабируется при изменении размера.
- Однако, как добавление множества визуалов на страницу отчёта Power BI может влиять на производительность, так и использование SVG с большим количеством данных может её снижать.
- Рекомендуется по возможности использовать Canvas, особенно при разработке прототипа, когда вы ещё не знаете, с каким количеством элементов или точек данных будете работать.
- Если вы хотите использовать SVG при большом количестве данных, подумайте, можно ли объединить несколько точек данных в один экранный элемент: например, использовать
lineвместоpoint. Это помогает уменьшить количество отдельных элементов.
Подробнее о сравнении Canvas и SVG рассказывает статья CSS-Tricks «When to Use SVG vs. When to Use Canvas». В ней собрана полезная информация и перечислены преимущества и недостатки обоих подходов.
Применение изменений во время ввода или вручную
Редактор визуала может применять изменения к результату по мере ввода. Это удобно, но может существенно замедлять работу, если вы за короткое время вносите много изменений в особенно сложную спецификацию: каждое изменение требует повторного разбора и отрисовки в Vega или Vega-Lite.
Если эта возможность включена, мы уже используем приёмы для сокращения лишних обновлений, например задержку обработки ввода до паузы в наборе текста (debouncing). Тем не менее при редактировании сложной спецификации или работе с большим объёмом данных рекомендуется применять изменения вручную, когда они готовы.
Добавляйте только необходимые столбцы и меры
Любые данные, добавляемые в визуал, влияют на производительность, в частности:
- На запрос DAX, с помощью которого Power BI создаёт набор данных для Deneb.
- На количество ресурсов, необходимых Deneb для обработки набора данных, а Vega или Vega-Lite — для отрисовки результата согласно спецификации.
- На создание контекста строк с более подробной детализацией, чем вам требуется, что может усложнить получение нужного результата.
Поэтому добавляйте только те столбцы, меры и контекст фильтрации, которые нужны визуалу для передачи его смысла.
Меню настройки производительности
Меню Performance Tuning на панели форматирования Power BI предоставляет дополнительные свойства, позволяющие изменить производительность спецификации. По возможности для них выбраны значения, обеспечивающие оптимальную производительность.
Пересчёт при изменении размера
Контейнеры визуалов Power BI динамичны: любое изменение размера может вызвать обновление логики визуала и повторный расчёт спецификации. Для визуалов с небольшим количеством примитивов это может быть незаметно, но для сложных визуалов создаёт лишнюю нагрузку при действии, которое выполняется нечасто.
Если свойство Recalculate during resize включено, Deneb продолжает пересчитывать изменения спецификации во время изменения размера визуала. Если оно выключено, Deneb откладывает дальнейшие обновления до завершения изменения размера, то есть до отпускания кнопки мыши. Например:
